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

Репликация MySQL master-slave не обновляется

Я впервые настраиваю репликацию master-slave. Я использую этот в качестве ориентира.

Я выполнил шаги, и все работает до последней части, когда мне нужно проверить репликацию. Когда я создаю новую таблицу и ВСТАВЛЯЮ некоторые данные в таблицу в главной базе данных, они не реплицируются в подчиненной базе данных.

Ниже my.cnf мастера

server-id = 1
binlog-do-db = databasename
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
log-error = /var/lib/mysql/mysql.err
master-info-file = /var/lib/mysql/mysql-master.info
relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
log-bin = /var/lib/mysql/mysql-bin

И раб my.cnf

server-id = 2
master-host=10.77.88.111
master-connect-retry=60
master-user=slave_user
master-password=slave_password
replicate-do-db=databasename
replicate-ignore-table=table1
replicate-ignore-table=table2
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
log-error = /var/lib/mysql/mysql.err
master-info-file = /var/lib/mysql/mysql-master.info
relay-log-info-file = /var/lib/mysql/mysql-relay-log.info
log-bin = /var/lib/mysql/mysql-bin

Ниже показано ПОКАЗАТЬ СТАТУС РАБОТЫ

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.77.88.111
                  Master_User: slave_user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 389591
               Relay_Log_File: mysql-relay-bin.000003
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: databasename
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table: databasename.table1,databasename.table2
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 389591
              Relay_Log_Space: 120695
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)

Я пытался:

Пожалуйста помоги! Действительно ценю это!

Нет ничего плохого.

Вот как вы можете сказать

ИНДИКАЦИЯ №1: Ведомые потоки

Когда ты бежал SHOW SLAVE STATUS\G, это показывает

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Это показывает, что как поток ввода-вывода (перехватывает события Binlog от главного и сохраняет их в FIFO журналов реле), так и поток SQL (считывает события Binlog из FIFO журналов реле и выполняет SQL) и подключены и работают

УКАЗАНИЕ № 2: Журналы реле

Когда ты бежал SHOW SLAVE STATUS\G, это показывает

Relay_Log_Space: 120695

Это показывает, что поток ввода-вывода прочитал 120 КБ от мастера. Это значение должно постоянно меняться, пока поток ввода-вывода читает новые события.

ПОКАЗАНИЕ № 3: Выполненные заявления

Когда ты бежал SHOW SLAVE STATUS\G, это показывает

Read_Master_Log_Pos: 389591
Exec_Master_Log_Pos: 389591

Если эти значения меняются, потоки ввода-вывода занимают любую позицию в Read_Master_Log_Pos и поток SQL выполнил до любой позиции в Exec_Master_Log_Pos.

ПРЕДОСТЕРЕЖЕНИЕ

Я вижу, что на ведомом устройстве включено ведение двоичного журнала. Вы не увидите роста двоичных журналов на ведомом устройстве. Зачем ? Вы забыли добавить журнал-подчиненный-обновления к рабу my.cnf.

Вам нужно будет добавить журнал-подчиненный-обновления к рабу my.cnf и перезапустите MySQL.

Здесь нет ничего явно плохого.

Первое, что я хотел бы сделать, это убедиться, что при вводе команд CREATE TABLE и INSERT вы действительно ИСПОЛЬЗУЕТЕ имя базы данных.

Вы также можете попробовать снять ограничения, налагаемые binlog-do-db, replicate-do-db и т. Д., И посмотреть, поможет ли это.