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

Настроить репликацию mysql, но новые данные не обновляются

Я настроил репликацию MySQL для существующего сервера базы данных. Настройка кажется прекрасной, но база данных никогда не обновляется на подчиненном сервере после запуска репликации. Оба сервера используют 64-разрядную версию CentOS 5.7. У них достаточно места на диске.

С главного сервера MySQL

mysql> показать такие переменные, как server_id;
| server_id | 1 |

mysql> показать список процессов;
| 391673 | ответ | mysqlslave.mydomain.com:47453 | NULL | Дамп бинлога | 1453 | Отправил весь бинлог ведомому устройству; ждем обновления binlog | НОЛЬ

mysql> показать подчиненные хосты;
Пустой набор (0,00 сек)

mysql> показать статус мастера;
| mysql-bin.000008 | 98 | db1, db2 |

С ведомого сервера MySQL

mysql> показать такие переменные, как server_id;
server_id | 2

mysql> показать статус подчиненного \ G;
************************** 1. строка ******************** *******
Slave_IO_State: Ожидание отправки события мастером
Master_Host: 192.168.1.2
Master_User: repl
Мастер_Порт: 3306
Connect_Retry: 60
Главный_Журнал_Файл: mysql-bin.000008
Read_Master_Log_Pos: 98
Relay_Log_File: ведомое-реле-bin.000004
Relay_Log_Pos: 235
Relay_Master_Log_File: mysql-bin.000008;
Slave_IO_Running: Да
Slave_SQL_Running: Да
Replicate_Do_DB: db1; db2

Журнал MySQL

На подчиненном сервере журнал сообщений показывает это

111031 10:53:16 [Примечание] Выход из подчиненного потока ввода-вывода, чтение до журнала 'mysql-bin.000008', позиция 98
111031 10:53:16 [Примечание] Ошибка чтения журнала событий реле: подчиненный поток SQL был убит
111031 10:53:16 [Примечание] Инициализирован подчиненный поток SQL, запуск репликации в журнале mysql-bin.000008 с позиции 98, релейный журнал ./slave-relay-bin.000001 позиция: 4
111031 10:53:16 [Примечание] Подчиненный поток ввода-вывода: подключен к главному серверу «repl@192.168.1.2: 3306», репликация началась в журнале «mysql-bin.000008» в позиции 98

Обновить

Если я создам новую базу данных на главном сервере, она будет реплицирована на подчиненный сервер, но существующие базы данных не обновятся.

Последнее обновление

Вместо того, чтобы сбрасывать все базы данных и настраивать репликацию за один раз, я делаю это по одной, и теперь все работает нормально.

Я думаю я вижу проблему

В вашем вопросе указано следующее:

Replicate_Do_DB: db1; db2

Это не должен быть список, разделенный точкой с запятой. Предполагается, что это будет список, разделенный запятыми.

Я предполагаю, что это у вас есть в /etc/my.cnf вашего раба

replicate-do-db=db1; db2

Правильный способ настройки -

replicate-do-db=db1
replicate-do-db=db2

Отрегулируйте это в /etc/my.cnf подчиненного устройства и перезапустите mysql на подчиненном устройстве.

Попробуйте !!!

ОБНОВЛЕНИЕ 2011-10-31 15:20 EDT

Вы можете очистить журнал реле, выполнив следующие действия.

STOP SLAVE;
CHANGE MASTER TO master_log_file='mysql-bin.000008',master_log_pos-98;
START SLAVE;

затем беги SHOW SLAVE STATUS\G и убедитесь, что репликация запущена, убедившись, что вы видите это

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

так же, как вы написали в своем вопросе