请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

八酷博客 首页 技术分享 解决问题 查看内容

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

2020-11-18 23:02| 发布者: admin| 查看: 7| 评论: 0|原作者: DreamCatt|来自: 博客园

摘要: 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
DreamCatt

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

mysql 读写分离 数据库


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

收获


Ctrl`

请问这个应该怎么查

DreamCatt


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

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

Ctrl`


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

DreamCatt



Executed_Gtid_Set 的值总为空

DreamCatt


文章点评