Сегодня в статье разберем ошибку репликации сервера MySQL — Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids. Данная ошибка может появится когда у вашего Master-сервера и Slave-сервера одинаковые номера server_id. Причем в конфигурационных файлах указанны явно разные id.
Давайте исправим данную ошибку. Для этого подключаемся к нашему Slave-серверу и заходим в mysql.
ssh root@my_server_ip
mysql -u root -p
Вводим команду, чтобы посмотреть какой номер присвоен нашему Slave-серверу:
mysql> show variables like 'server_id'
У меня на Slave-сервере данный вывод был следующим:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0,01 sec)
В конфигурационном файле значения server_id стояло 2. Чтобы исправить данную ошибку вводим следующие команды:
mysql> STOP SLAVE;
mysql> set global server_id=2;
mysql> START SLAVE;
Теперь проверим вывод команды:
mysql> show variables like 'server_id'
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
1 row in set (0,01 sec)
Как видно из вывода наш server_id изменился. Теперь можно посмотреть на информацию о Slave-сервере. Для этого набираем:
mysql> show slave status\G;
*************************** 1. row *************************** Slave_IO_State: Waiting for source to send event Master_Host: 10.1.1.2 Master_User: replica Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 2136621 Relay_Log_File: mysql-relay-bin.000001 Relay_Log_Pos: 154 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes
Цветом выделил необходимые параметры о том, что наш Slave-сервер завелся и работает.
[endtxt]