首页 新闻 搜索 专区 学院

Mysql读写分离主库新增表插入数据成功 从库失败

0
悬赏园豆:50 [已解决问题] 解决于 2020-11-18 17:28

Mysql读写分离配置完后,在主库已存在的表新增 插入删除数据 ,从库正常同步;但是如果在主库新增一个表,然后再此表中新增一条数据,从库不新增。
mysql版本:5.7
系统:linux 3.10.0-514.el7.x86_64

数据库配置文件my.inf内容如下:

......
[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
请问,这是什么原因导致的?该如何解决?

DreamCatt的主页 DreamCatt | 菜鸟二级 | 园豆:233
提问于:2020-10-13 16:18
< >
分享
最佳答案
1

使用mysqlbinlog 查看这个relay-log=mysql-relay-bin 目录下的日志文件。应该能看到更明细的异常日志

收获园豆:25
Ctrl` | 老鸟四级 |园豆:2595 | 2020-10-13 16:45

请问这个应该怎么查

DreamCatt | 园豆:233 (菜鸟二级) | 2020-10-13 16:49

就你数据库my.inf的这个配置:relay-log=mysql-relay-bin
找到mysql-relay-bin这个目录。查看里面会有很多(见图)
文件。然后找到最新的。使用mysqlbinlog log_bin.000001
里面会有详细的insert、drop、你的操作语句打印。以及一些错误
一步步定位到你的没同步的问题原因。不至于只能看到Error_code: 1677这个玩意。不知道问题究竟错在哪里

这个记录日志的名词叫“中继日志”。

Ctrl` | 园豆:2595 (老鸟四级) | 2020-10-13 17:18

@Ctrl`:
中继日志找到了 语句也找到了 没见报错啊 哈哈

DreamCatt | 园豆:233 (菜鸟二级) | 2020-10-14 10:21


Executed_Gtid_Set 的值总为空

DreamCatt | 园豆:233 (菜鸟二级) | 2020-10-14 11:59
其他回答(1)
1

从库执行sql drop table test_tb 报错,因为从库不存在 test_tb这个表

收获园豆:25
不知道风往哪儿吹 | 园豆:782 (小虾三级) | 2020-10-13 16:40

drop是可以的,insert从库失败

支持(0) 反对(0) DreamCatt | 园豆:233 (菜鸟二级) | 2020-10-13 16:46

@DreamCatt: 那说明你create table test_tb(id VARCHAR(12)) 这句没执行成功,你手动在从库执行这些sql,会报错吗?

支持(0) 反对(0) 不知道风往哪儿吹 | 园豆:782 (小虾三级) | 2020-10-13 16:47

@不知道风往哪儿吹: create 和drop都成功了,现在的问题是,插入新数据时,主库正常插入,从库无反应

支持(0) 反对(0) DreamCatt | 园豆:233 (菜鸟二级) | 2020-10-13 16:48

@DreamCatt: 我的意思是你用binlog里面的sql语句去从库执行,看有没有报错,如果没有报错就是从库没有执行binlog的语句

支持(0) 反对(0) 不知道风往哪儿吹 | 园豆:782 (小虾三级) | 2020-10-13 16:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册