Назад | Перейти на главную страницу

ошибка 1236 Ведомое устройство с тем же server_uuid / server_id, что и это ведомое устройство, подключилось к ведущему

Я получил эту ошибку при настройке одного главного и нескольких подчиненных серверов.

Last_IO_Error: Получена фатальная ошибка 1236 от ведущего при чтении данных из двоичного журнала: «Подчиненное устройство с тем же server_uuid / server_id, что и это ведомое устройство, подключилось к ведущему; первое событие 'mysql-bin.xxxx' при чтении события из /var/lib/mysql/mysql-bin.xxx 'в xx, последний байт, прочитанный из' /var/lib/mysql/mysql-bin.xxx 'в ххх. ' Скриншот с одного из рабов

ОТНОСИТСЯ К: Сервер MySQL - версия 5.6 и более поздние. Информация в этом документе применима к любой платформе.

При попытке запустить репликацию возникает следующая ошибка:

mysql> ПОКАЗАТЬ СТАТУС ПОДЧИНЕНИЯ \ G
************************** 1. строка ******************** ******* ... Slave_IO_Running: Нет Slave_SQL_Running: Да ... Last_IO_Errno: 1593 Last_IO_Error: Неустранимая ошибка: поток ввода-вывода подчиненного устройства останавливается, поскольку главный и подчиненный сервер имеют одинаковые UUID сервера MySQL; эти UUID должны быть разными, чтобы репликация работала. Last_SQL_Errno: 0 Last_SQL_Error: ... Master_UUID: 7cb3e340-39d6-11e3-bc02-080027fa0f20 ... 1 строка в наборе (0,00 сек)

Также ошибку можно увидеть в журнале ошибок:

2013-11-12, 09:54:21 10149 [ERROR] Slave I / O: Fatal error: Slave I / O thread останавливается, потому что ведущий и ведомый имеют одинаковые UUID сервера MySQL; эти UUID должны быть разными, чтобы репликация работала. Код ошибки: 1593 2013-11-12 09:54:21 10149 [Примечание] Выход из потока ввода-вывода ведомого устройства, чтение до журнала 'binlog.000005', позиция 231

ИЗМЕНЕНИЯ Эта проблема обычно возникает сразу после клонирования ведомого устройства из ведущего устройства, особенно когда используются снимки файловой системы или каталог данных был скопирован с помощью команд файловой системы.

ПРИЧИНА UUID сервера одинаковы для ведущего и ведомого. UUID используются для идентификации серверов, поэтому они должны быть идентичными. Это, например, необходимо для репликации с использованием GTID.

UUID сервера хранится в файле auto.cnf, который находится в каталоге данных. Вы можете увидеть значение UUID сервера с помощью:

mysql> ПОКАЗАТЬ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ КАК 'server_uuid'; + --------------- + --------------------------------- ----- + | Variable_name | Значение | + --------------- + --------------------------------- ----- + | server_uuid | 7cb3e340-39d6-11e3-bc02-080027fa0f20 | + --------------- + --------------------------------- ----- + 1 строка в наборе (0.00 сек) Чтобы увидеть UUID ведущего, вы можете использовать вывод SHOW SLAVE STATUS:

mysql> ПОКАЗАТЬ СТАТУС ПОДЧИНЕНИЯ \ G
************************** 1. строка ******************** ******* ... Master_UUID: 7cb3e340-39d6-11e3-bc02-080027fa0f20 ... 1 строка в наборе (0,00 сек)

РЕШЕНИЕ Если auto.cnf не существует, MySQL автоматически создаст новый файл с новым UUID. Итак, чтобы решить проблему:

  1. Остановите процесс MySQL на ведомом устройстве.
  2. Удалите файл auto.cnf из каталога данных.
  3. Снова запустите MySQL на ведомом устройстве.

Вы также должны пересмотреть свою процедуру создания ведомого устройства, чтобы файл auto.cnf не копировался напротив ведущего устройства.