Тож до справи!
Для початку опишимо певні деталі. Будемо вважати, що сервера мають такі айпі:
centos1 - 192.168.1.23
centos2 - 192.168.1.24
Редагуємо /etc/my.cnf сервера centos1. Додаємо до вже існуючих параметрів такі:
[mysqld]
# Номер сервера, що реплікується. У кожного має бути унікальний id.
# Конфігурація сервера, як майстра. Указуємо, де будуть зберігатись бінлоги.
# Бінлог - це список SQL-запитів (окрім SELECT та SHOW запитів ), що були виконані на сервері задля подальшої їх передачі на слейв.
# Конфігурація сервера, як слейва. Relay-log - лог дій, котрі були виконані на слейві за ініціативи майстра.
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
#База, що буде реплікуватись.
replicate-do-db = dbwordpress
Для сервера centos2 необхідно прописати ідентичні параметри, окрім значення 'server-id' (змініть цифру наприклад на 2).
Рестартуємо mysql на кожному сервері.
Наступне, що необхідно зробити - створити користувача, від імені якого буде проходити реплікація та прописати певні параметри, щоб стартувати реплікацію
Тож на серверах centos1 і 2 відповідно виконуємо:
mysql@centos1> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replication'@'192.168.1.24' IDENTIFIED BY 'password';
mysql@centos2> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replication'@'192.168.1.23' IDENTIFIED BY 'password';
Далі необхідно прив'язати слейви до своїх майстрів.
На centos1 виконуємо:
mysql@centos1> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 7984 | | |
+------------------+----------+--------------+------------------+
1 row in set (0,00 sec)
Використовуючи значення колонки "File" та "Position", пишемо запит в консолі mysql на сервері centos2:
mysql@centos2> CHANGE MASTER TO MASTER_HOST = "192.168.1.23", MASTER_USER = "replication", MASTER_PASSWORD = "password_of_user_replication", MASTER_LOG_FILE = "mysql-bin.000006", MASTER_LOG_POS = 7984;
mysql@centos2> slave start;
Далі, навпаки на сервері 2 виконуємо
mysql@centos2> show master status;
Аналогічно, використовуємо отримані дані для запиту, проте вже на сервері 1:
mysql@centos1> CHANGE MASTER TO MASTER_HOST = "192.168.1.24", MASTER_USER = "replication", MASTER_PASSWORD = "password_of_user_replication", MASTER_LOG_FILE = "mysql-bin.000011", MASTER_LOG_POS = 106;
mysql@centos1> slave start;
Перевірити статус реплікації можна виконавши в консолі MySQL:
show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.23
Master_User: replication
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000011
Read_Master_Log_Pos: 106
Relay_Log_File: mysql-relay-bin.000083
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000011
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: dbwordpress
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 106
Relay_Log_Space: 551
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)
Якщо немає помилок - то все виконано правильно. Перш за все зверніть увагу на наведені значення.
Посилання:
http://habrahabr.ru/post/56702/
http://it-giki.com/post/260.html
http://tokarchuk.ru/2010/06/multi-master-%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F-%D0%B2-mysql/
http://www.thegeekstuff.com/2013/09/mysql-select-command/
centos1 - 192.168.1.23
centos2 - 192.168.1.24
Редагуємо /etc/my.cnf сервера centos1. Додаємо до вже існуючих параметрів такі:
[mysqld]
# Номер сервера, що реплікується. У кожного має бути унікальний id.
server-id = 1
# Бінлог - це список SQL-запитів (окрім SELECT та SHOW запитів ), що були виконані на сервері задля подальшої їх передачі на слейв.
log-bin = /var/lib/mysql/mysql-bin
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
#База, що буде реплікуватись.
replicate-do-db = dbwordpress
Для сервера centos2 необхідно прописати ідентичні параметри, окрім значення 'server-id' (змініть цифру наприклад на 2).
Рестартуємо mysql на кожному сервері.
Наступне, що необхідно зробити - створити користувача, від імені якого буде проходити реплікація та прописати певні параметри, щоб стартувати реплікацію
Тож на серверах centos1 і 2 відповідно виконуємо:
mysql@centos1> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replication'@'192.168.1.24' IDENTIFIED BY 'password';
mysql@centos2> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replication'@'192.168.1.23' IDENTIFIED BY 'password';
Далі необхідно прив'язати слейви до своїх майстрів.
На centos1 виконуємо:
mysql@centos1> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 7984 | | |
+------------------+----------+--------------+------------------+
1 row in set (0,00 sec)
Використовуючи значення колонки "File" та "Position", пишемо запит в консолі mysql на сервері centos2:
mysql@centos2> CHANGE MASTER TO MASTER_HOST = "192.168.1.23", MASTER_USER = "replication", MASTER_PASSWORD = "password_of_user_replication", MASTER_LOG_FILE = "mysql-bin.000006", MASTER_LOG_POS = 7984;
mysql@centos2> slave start;
Далі, навпаки на сервері 2 виконуємо
mysql@centos2> show master status;
Аналогічно, використовуємо отримані дані для запиту, проте вже на сервері 1:
mysql@centos1> CHANGE MASTER TO MASTER_HOST = "192.168.1.24", MASTER_USER = "replication", MASTER_PASSWORD = "password_of_user_replication", MASTER_LOG_FILE = "mysql-bin.000011", MASTER_LOG_POS = 106;
mysql@centos1> slave start;
Перевірити статус реплікації можна виконавши в консолі MySQL:
show slave status \G
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.23
Master_User: replication
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000011
Read_Master_Log_Pos: 106
Relay_Log_File: mysql-relay-bin.000083
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000011
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: dbwordpress
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 106
Relay_Log_Space: 551
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)
Посилання:
http://habrahabr.ru/post/56702/
http://it-giki.com/post/260.html
http://tokarchuk.ru/2010/06/multi-master-%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F-%D0%B2-mysql/
http://www.thegeekstuff.com/2013/09/mysql-select-command/
Немає коментарів:
Дописати коментар