ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

创建数据库时mysql replication master 5.5 slave 5.1错误

2019-08-06 09:15:52  阅读:293  来源: 互联网

标签:mysql replication mysql-5-5 mysql-5-1


我有一个复制系统,我的主人有一个mysql 5.5版本,而奴隶是mysql 5.1.我知道这不受支持,因为奴隶版本应该比主版本大,但我们还不能升级.

在主服务器中创建新数据库之前一切正常,然后从服务器复制失败并显示错误:

Query caused different errors on master and slave.     
Error on master: message (format)=
'Column count of mysql.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. 
Please use mysql_upgrade to fix this error.' error code=1558 ; Error on slave: actual message='no error', error code=0. Default database: 'newdb'. Query: 'DROP DATABASE newdb'

我的解决方法是:

set global sql_slave_skip_counter=2;
create database newdb;
start slave

在对所有数据库表进行校验和后,一切似乎都没问题,但我们有一个非常糟糕的应用程序,它经常创建数据库,所以我想知道是否有一种方法并不意味着编码解决问题而无需手动创建数据库.

解决方法:

主服务器生成的每个复制事件都包含执行生成事件的查询所导致的错误代码.这通常是“成功”(0,没有错误).

当从属执行查询时,它期望遇到的错误与主遇到的错误相同(同样,通常是“无错误”).如果没有发生这种情况,复制将停止.请注意,不保留来自主服务器的错误消息,只保留代码.这就是您在错误消息中看到占位符的原因,因为从属显示错误消息的sprintf()模板.

但请仔细注意错误的位置.

检查主服务器的错误日志.

看起来好像主人没有正确升级到MySQL 5.5;具体来说,看起来mysql_upgrade实用程序似乎没有用于升级系统表以与MySQL 5.5完全兼容.

http://dev.mysql.com/doc/refman/5.5/en/mysql-upgrade.html

您确实在运行不受支持的配置,使用较新的主服务器和较旧的服务器…但在这种情况下,您的主服务器似乎存在与复制无关的问题.

Error on master: 
message (format)=
'Column count of mysql.%s is wrong. Expected %d, found %d.  Created with MySQL %d, now running %d. 
Please use mysql_upgrade to fix this error.' 
error code=1558 ; 

主人遇到了错误;您可能会在主日志中发现类似的错误,尽管它们可能只在启动时发生,如果有的话.无论如何,你的应用程序也应该看到这个错误……也许它忽略了它.

标签:mysql,replication,mysql-5-5,mysql-5-1
来源: https://codeday.me/bug/20190806/1597893.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有