Я установил MySQL (5.5) в режиме «главный-подчиненный» и создал еще один подчиненный сервер.
Я остановил оригинальное ведомое устройство, сбросил данные, скопировал и повторно импортировал, и это работало отлично. Я отметил pos master_log оригинального ведомого устройства и использовал эти команды, чтобы установить его на новом подчиненном устройстве.
CHANGE MASTER TO MASTER_HOST='<ipaddress>',
MASTER_USER='<username>', MASTER_PASSWORD='<password>',
MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000851',
MASTER_LOG_POS=15824150,
MASTER_CONNECT_RETRY=10;
Когда я начал новый раб, я получил
Last_IO_Error: Получена фатальная ошибка 1236 от мастера при чтении данных из двоичного журнала: «превышена запись в журнале событий max_allowed_packet; Увеличьте max_allowed_packet на master '
Однако, когда я запустил оригинальное ведомое устройство, оно отлично справилось и теперь синхронизировано.
Итак, вопросы:
текущее значение составляет 16M, как я знаю, как большой идти? (Я бы предпочел избежать проб и ошибок с производственным сервером).
зачем мне увеличивать значение на ведущем устройстве, когда исходное ведомое устройство справлялось просто, может ли быть проблема с новым ведомым устройством?
Обновить
Я увеличил max_allowed_packet до 1073741824, как предложил Роландо на главном, старом рабе и новом рабе, и перезапустил их ( SET GLOBAL max_allowed_packet = 1073741824;
по некоторым причинам, похоже, не взял)
теперь последняя ошибка ввода-вывода такая же, как и раньше, но теперь я вижу
Last_SQL_Error: Ошибка чтения журнала ретрансляции: не удалось проанализировать запись события журнала ретрансляции. Возможные причины: бинарный журнал мастера поврежден (вы можете проверить это, запустив mysqlbinlog в двоичном журнале), журнал реле подчиненного устройства поврежден (вы можете проверить это, запустив mysqlbinlog в журнале ретрансляции), проблема с сетью или ошибка в коде MySQL ведущего или подчиненного. Если вы хотите проверить двоичный журнал ведущего или журнал ретрансляции ведомого, вы сможете узнать их имена, введя «SHOW SLAVE STATUS» на этом ведомом устройстве.
Если я делаю mysqlbinlog с файлом мастера, он довольно долго прокручивается с командами - файл 722M - если я делаю это для журнала подчиненного реле, я получаю
ОШИБКА: Ошибка в Log_event :: read_log_event (): «Проверка работоспособности не удалась», data_len: 38916267, тип события: 69
ОШИБКА: не удалось прочитать запись со смещением 253. Ошибка в формате журнала или ошибка чтения.
Я проверил переменные и изменения работали однако
mysql> показывать переменные LIKE '% max_allowed_packet%';
на новом ведомом показал max_allowed_packet
И slave_max_allowed_packet
где как на мастере он только имеетmax_allowed_packet
поэтому я сделал проверку версии на мастере:
mysql> show variables LIKE '%version%';
+-------------------------+--------------------------------------+
| Variable_name | Value |
+-------------------------+--------------------------------------+
| innodb_version | 1.1.6 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.11-log |
| version_comment | MySQL Community Server (GPL) by Remi |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+--------------------------------------+
и на новом рабе
mysql> show variables LIKE '%version%';
+-------------------------+--------------------------------------+
| Variable_name | Value |
+-------------------------+--------------------------------------+
| innodb_version | 5.5.32 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.32-log |
| version_comment | MySQL Community Server (GPL) by Remi |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+--------------------------------------+
Эти 2 версии слишком далеко друг от друга?