/etc/my.cnf
/usr/program/mysql/my.cnf
/usr/program/mysql/mysql-test/suite/ndb/my.cnf
/usr/program/mysql/mysql-test/suite/ndb_big/my.cnf
.............
/usr/program/mysql/mysql-test/suite/ndb_rpl/my.cnf
Запустите сервер MySQL: service mysql start
Проверьте, запущен ли он: ps aux | grep mysql
По умолчанию пароль для root пуст, поэтому для удобства можно установить новый пароль, например, 123456:
В терминале выполните: mysql -uroot
После изменения пароля выполните в терминале: mysql -uroot -p
В терминале выполните: service mysql stop
.
В терминале выполните: /usr/program/mysql/bin/mysqld --skip-grant-tables
.
В этот момент MySQL-сервис будет находиться в состоянии прослушивания. Необходимо открыть ещё одно окно терминала для выполнения следующих действий.
В терминале выполните: mysql -u root mysql
.
После входа в MySQL-команду выполните:
UPDATE user SET Password=PASSWORD('введите новый пароль') where USER='root';FLUSH PRIVILEGES;
.
Перезапустите MySQL-сервис: service mysql restart
.
Предположим, что есть два сервера: один выполняет роль мастера, другой — реплики.
Информация о мастере:
— IP: 12.168.1.113;
— порт: 3306.
Информация о реплике:
— IP: 12.168.1.115;
— порт: 3306.
Примечание:
— версии базы данных на главном и подчинённом серверах должны совпадать;
— данные в базах данных главного и подчинённого серверов должны быть одинаковыми;
— на главном сервере должен быть включён двоичный журнал, а server-id на главном и подчиненном серверах должен быть уникальным.
Приоритет операций:
— скопировать базу данных с главного сервера на подчинённый и импортировать.
Действия на главном сервере:
— создайте каталог: mkdir -p /usr/program/mysql/data/mysql-bin
;
— включите двоичный журнал на главном сервере: vim /etc/my.cnf
, добавьте строку: log-bin = /usr/program/mysql/data/mysql-bin
, укажите синхронизируемую базу данных (если не указано, то синхронизируются все базы данных).
— закройте медленный журнал запросов на главном сервере с помощью SQL-запроса: SHOW VARIABLES LIKE '%slow_query_log%'
. Если отображается OFF, это означает, что он закрыт, ON — открыт.
— перезапустите главный сервер MySQL.
— войдите в состояние командной строки MySQL и выполните SQL-запрос для проверки состояния: SHOW MASTER STATUS
. Запишите значения File и Position в результатах. Они понадобятся позже для настройки реплики.
— настройте разрешения для пользователя slave01 с паролем 123456 для подключения к главному серверу. Здесь @ после IP-адреса представляет IP-адрес реплики, если у реплики несколько машин, необходимо выполнить несколько таких SQL-запросов.
grant replication slave on *.* to 'slave01'@'192.168.1.135' identified by '123456';
flush privileges;
Действия на реплике:
— откройте медленный журнал запросов на реплике с помощью SQL-запроса: SHOW VARIABLES LIKE '%slow_query_log%'
; если отображается OFF, значит, он закрыт, ON — открыт.
— проверьте, может ли реплика подключиться к главному серверу: sudo mysql -h 192.168.1.105 -u slave01 -p
. Это действие имеет смысл только в том случае, если подключение успешно.
Чтобы исключить проблемы с брандмауэром, рекомендуется временно отключить его:
— service iptables stop
.
Или добавить правило брандмауэра:
— добавить правило: sudo iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
;
— сохранить правило: sudo service iptables save
;
— перезапустить iptables: sudo service iptables restart
.
— измените конфигурацию файла: vim /etc/my.cnf
и установите значение server-id, отличное от главного сервера.
— в командной строке MySQL введите следующий SQL:
CHANGE MASTER TO
master_host='192.168.1.113',
master_user='slave01',
master_password='123456',
master_port=3306,
master_log_file='mysql3306-bin.000006',>>>это значение вы записали ранее
master_log_pos=1120;>>>это значение вы также записали ранее
— выполните этот SQL-запрос, чтобы запустить синхронизацию реплик: START SLAVE;
— выполните этот SQL-запрос, чтобы проверить статус реплики: SHOW SLAVE STATUS;
— убедитесь, что значения Slave_IO_Running и Slave_SQL_Running в результатах равны Yes. Это означает успешную настройку репликации.
Если Slave_IO_Running равно No, обычно это происходит при тестировании на виртуальной машине. Реплика была скопирована с главной виртуальной машины. Обычно это происходит из-за того, что UUID MySQL на обеих машинах одинаковы. Вы можете проверить журнал ошибок реплики: cat /usr/program/mysql/data/mysql-error.log
.
Если в журнале ошибок указано сообщение об ошибке uuid, вы можете отредактировать файл конфигурации реплики: vim /usr/program/mysql/data/auto.cnf
. Измените значение server-uuid в файле конфигурации так, чтобы оно отличалось от главного сервера.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )