Mysql读写分离配置完后,在主库已存在的表新增 插入删除数据 ,从库正常同步;但是如果在主库新增一个表,然后再此表中新增一条数据,从库不新增。
mysql版本:5.7
系统:linux 3.10.0-514.el7.x86_64
......
[mysqld]
character_set_server=utf8 init_connect='SET NAMES utf8'
skip-name-resolve
slave_skip_errors=all
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
relay-log=mysql-relay-bin
server-id=65
symbolic-links=0
log-bin=mysql-bin
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_connections=1000
......
--drop table test_tb;
create table test_tb(id VARCHAR(12));
INSERT INTO test_tb VALUES('11111');
2020-10-13T07:32:53.314874Z 59 [Warning] Slave SQL for channel '': Error executing row event: 'Unknown error 1146', Error_code: 1146
2020-10-13T07:33:03.349435Z 59 [Warning] Slave SQL for channel '': Error executing row event: 'Unknown error 1146', Error_code: 1146
2020-10-13T07:33:13.306841Z 59 [Warning] Slave SQL for channel '': Error executing row event: 'Unknown error 1146', Error_code: 1146
2020-10-13T07:33:23.326045Z 59 [Warning] Slave SQL for channel '': Error executing row event: 'Unknown error 1146', Error_code: 1146
2020-10-13T07:33:33.330658Z 59 [Warning] Slave SQL for channel '': Error executing row event: 'Unknown error 1146', Error_code: 1146
2020-10-13T07:38:06.289980Z 59 [Warning] Slave SQL for channel '': , Error_code: 1677
2020-10-13T07:38:35.495749Z 59 [Warning] Slave SQL for channel '': , Error_code: 1677
2020-10-13T07:43:32.364440Z 59 [Warning] Slave SQL for channel '': , Error_code: 1677
请问,这是什么原因导致的?该如何解决?
使用mysqlbinlog 查看这个relay-log=mysql-relay-bin 目录下的日志文件。应该能看到更明细的异常日志
请问这个应该怎么查
就你数据库my.inf的这个配置:relay-log=mysql-relay-bin
找到mysql-relay-bin这个目录。查看里面会有很多(见图)
文件。然后找到最新的。使用mysqlbinlog log_bin.000001
里面会有详细的insert、drop、你的操作语句打印。以及一些错误
一步步定位到你的没同步的问题原因。不至于只能看到Error_code: 1677这个玩意。不知道问题究竟错在哪里
这个记录日志的名词叫“中继日志”。
@Ctrl`:
中继日志找到了 语句也找到了 没见报错啊 哈哈
Executed_Gtid_Set 的值总为空
从库执行sql drop table test_tb 报错,因为从库不存在 test_tb这个表
drop是可以的,insert从库失败
@DreamCatt: 那说明你create table test_tb(id VARCHAR(12)) 这句没执行成功,你手动在从库执行这些sql,会报错吗?
@不知道风往哪儿吹: create 和drop都成功了,现在的问题是,插入新数据时,主库正常插入,从库无反应
@DreamCatt: 我的意思是你用binlog里面的sql语句去从库执行,看有没有报错,如果没有报错就是从库没有执行binlog的语句
show slave status 也看不到吗
你的mysql配置文件中是不是设置了只同步指定库的数据。没指定的从库就不会同步。