MYSQL 8复制错误

vyu0f0g1  于 2022-12-26  发布在  Mysql
关注(0)|答案(3)|浏览(133)

早上好,我已经设置了两个mysql 8数据库之间的GTID复制,他们是一个Powerdns设置当我在主服务器上进行更改时,我只能得到一个事务复制,然后我出现了这个错误。
协调器已停止,因为工作进程中存在错误。最近的错误为:工作进程1无法在主日志binlog.000001、end_log_pos 2500处执行事务"0b5041c0 - 8e71 - 11ec-a064 - 00155d14ef09:5"。有关此故障或其他故障(如果有)的详细信息,请参阅错误日志和/或performance_schema. replication_appler_status_by_worker表。
如果我运行这些命令

On master database:
mysql> reset master;
On slave database:
mysql> stop slave;
mysql> reset slave;
mysql> reset master;
mysql> start slave;

这清除了错误,我能够同步多一个条目,然后我再次出现上述错误。
我用这个指南来设置它,也许我在设置中遗漏了一些东西。https://medium.com/@michael_w_s/basic-setup-of-master-slave-gtid-replication-on-mysql-8-8f39ea29765c
任何帮助都将不胜感激

e4eetjau

e4eetjau1#

感谢大家抽出时间回复
我已经解决了这个问题,我的主要问题是我在设置复制之前导入了我所有的数据。
只要我先设置复制,然后导入数据,一切都很好。

0tdrvxhp

0tdrvxhp2#

我遇到了同样的问题,错误实际上并没有显示在输出中,而是显示在错误日志中,或者消息中提到的其他位置之一。
我发现根本原因为:

tail /var/log/mysql/error.log

您的日志位置可能不同。在我的情况下,这是一个权限相关的错误,但它可能是任何东西。

vxf3dgd4

vxf3dgd43#

我也遇到过同样的问题,发现我在my.cnf主文件中使用了一个旧的样式变量:

binlog-do-db = mydatabase

在复制副本上的错误日志中,由于另一个未指定的数据库而出现错误:“未找到my_other_database”。这意味着它将忽略变量并复制所有数据库。
在MySQL8上,要使用的正确变量名为:

binlog_do_db = mydatabase

这就解决了我的问题。只要确保您的主数据库列在“Binlog_Do_DB”下的表中:

mysql> SHOW MASTER STATUS;
+------------------+----------+----------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB   | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+----------------+------------------+-------------------+
| mysql-bin.000014 | 66373612 | mydatabase     |                  |                   |
+------------------+----------+----------------+------------------+-------------------+

相关问题