show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table: registry.user //同步的表 例如:tenxcloud_2_0.tenx_users
坑1:
Last_IO_Errno: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from
binary log: 'Client requested master to start replication from position
> file size'
从MySQL5.6开始引入了binlog_checksum全局变量,即MySQL会将event的CRC32校验值也写入binlog,显然MariaDB在分析日志的时候不会考虑该信息,导致解析出错。
解决方法:关闭主库的CRC校验,修改全局变量
在主库中 1 show variables like '%binlog%'; 2 set global binlog_checksum=NONE;
坑2:
我之前使用的MySQL5.5与MariaDB10.2版本相差过大,导致设置同步的过程中一直出现“Relay log write
failure: could not queue event from master”的问题,所以升级了MySQL,这个问题得到解决。
解决这些问题就能实现MySQL到MariaDB的主从同步了,但是需要注意的是,主从同步的数据库只能使用同种引擎,一般就是无脑InnoDB,本来想使用MariaDB的columnStore列存储引擎,但由于主库使用的InnoDB,结果数据并没有同步。而两者都是InnoDB则实现了同步。