У мене MySQL (5.5) в налаштуваннях майстер-підлеглого і створив ще один підлеглий сервер.
Я зупинив оригінального раба, скинув дані, скопіював і повторно імпортував, і це працювало чудово. Я відзначив master_log pos оригінального підлеглого і використав ці команди, щоб встановити його на новому підлеглому
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 на головний '
Однак коли я запустив оригінального раба, він наздогнав просто чудово і зараз синхронізується.
Отже, питання:
поточне значення - 16 млн. Як я можу знати, наскільки великим потрібно пройти? (Я вважаю за краще уникати спроб та помилок із виробничим сервером).
чому мені потрібно збільшити значення головного господаря, коли оригінальний раб справився просто чудово, чи може справді проблема бути з новим рабом?
оновлення
Я збільшив max_allowed_packet до 1073741824, коли Роландо запропонував про головного, старого раба та нового раба, і перезапустив їх ( SET GLOBAL max_allowed_packet = 1073741824;
чомусь не здавалося)
тепер остання помилка вводу-виводу така ж, як і раніше, але тепер я бачу
Last_SQL_Error: Помилка читання журналу ретрансляції: Не вдалося проаналізувати запис події журналу ретрансляції. Можливі причини: пошкоджений бінарний журнал господаря (ви можете перевірити це, запустивши "mysqlbinlog" на бінарний журнал), журнал ретранслятора підлеглого пошкоджений (ви можете перевірити це, запустивши "mysqlbinlog" у журналі ретрансляції), проблема з мережею або помилка в MySQL-коді головного або підлеглого. Якщо ви хочете перевірити бінарний журнал ведучого або журнал ретрансляції підлеглого, ви зможете дізнатися їх назви, видавши на цьому підлеглому "ПОКАЗАТИ СЛОВА СЛОВА".
Якщо я роблю 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 версії занадто далеко один від одного?