When I am studying MariaDB Guys ClusterAutomated cluster deployment plan (MGC) based on Docker. I had completed all debugging, want to deploy a production environment MGC cluster. However, error 1595 occured: Relay log write failure: could not queue event from master.
Production environment master database is MySQL 5.5. The new MGC use Mariadb up to date 10.3.12 stable Version. Imported one from the main DBdump out of the complete SQL.
After that, the change master starts to create the master and slave, then encounted the mysql error: relay log write failure: could not queue event from master.
MariaDB [(none)]> show slave status\G *************************** 1. row *************************** Slave_IO_State: Master_Host: x.x.x.x Master_User: rpl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.001411 Read_Master_Log_Pos: 360808406 Relay_Log_File: mysql-relay-bin.000001 Relay_Log_Pos: 4 Relay_Master_Log_File: mysql-bin.001411 Slave_IO_Running: No Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 360808406 Relay_Log_Space: 256 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: NULL Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 1595 Last_IO_Error: Relay log write failure: could not queue event from master Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 15410 Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: No Gtid_IO_Pos: Replicate_Do_Domain_Ids: Replicate_Ignore_Domain_Ids: Parallel_Mode: conservative SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it Slave_DDL_Groups: 0 Slave_Non_Transactional_Groups: 0 Slave_Transactional_Groups: 0 1 row in set (0.00 sec)
After some google research, find it is caused by the disk full. Hoever I have no problem with the disk space and permissions, so I continue to check the MGC node log is as follows:
2019-01-28 10:47:26 11 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.001411' at position 512281317, relay log './mysql-relay-bin.000003' position: 151473377 2019-01-28 10:47:26 10 [Note] Slave I/O thread: connected to master '[email protected]:3306',replication started in log 'mysql-bin.001413' at position 412624945 2019-01-28 10:47:26 10 [Warning] Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error: Unknown system variable 'binlog_checksum', Internal MariaDB error code: 1193 2019-01-28 10:47:26 10 [ERROR] Slave I/O: Replication event checksum verification failed while reading from network, Internal MariaDB error code: 1743 2019-01-28 10:47:26 10 [ERROR] Slave I/O: Relay log write failure: could not queue event from master, Internal MariaDB error code: 1595 2019-01-28 10:47:26 10 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.001413', position 412624945
I find there is a key message: binlog_checksum failed, it seems that the error is related to this. Then checked the information, it should be Mariadb keep slave_sql_verify_checksum is opened by default. It’s kept closed in MySQL by default.
So, it’s the master and slave versions are inconsistent, which resulting in checksum failure.
The solution to relay log write failure: could not queue event from master
To add slave_sql_verify_checksum=0 to the msyqld configuration in each MGC node. Or you can turn off this feature.