导入SQL到mysql时提示如下错误,请问是怎么回事?

导入SQL到mysql时提示如下错误,请问是怎么回事?,第1张

上面解决方法是错的,因为就这样忽略会导致slave丢失从发生错误以来的对该库的所有更新,并且只要有对该库有写 *** 作,slave将不停地报错。

场景模拟举例:

1. 如master上创建了一个db test,slave成功复制后,我使用管理员权限帐号登录slave mysql,并drop掉这个库。这个时候slave还不会报错的,因为test没有变化。

2. 但是此时master又在test库上创建了一个表pet,那么slave接收到这个 *** 作语句后,它会发现test db不存在,就报错了。

解决方法:

解决这个问题首先要解决的是如何保证slave上test 数据库的数据与master保持一致,也即要知道slave出错以来test db都发生了什么变化。如果真要去弄清楚test db在此期间做了哪些更新 *** 作,那么可能问题变得十分复杂。我觉得最快让slave恢复工作的方法是从master server上将test db复制过来,这很可能要停库,因为这个错误已经不能让slave正常复制数据了,是一个非常严重的问题。

还有,此类错误,代码不一定都是1008,我后来的实验中错误代码是1049,1051。

通过这个实验,slave上帐号权限管理须得小心,对于线上的db server,除非有特殊需要(如对mysql等不进行异步复制的数据库进行更新 *** 作),否则不要对slave进行任何写 *** 作。

根据我的经验,Mysql出现1007错误一般是指:数据库已存在,创建数据库失败。或是主从库有重名问题。

看一下具体提示是那个库名出现的问题,改一下名(如果你是管理员的话)。另外也有可能是同一服务器上有其它Mysql库也是这个名,重名了,如果你不是本地管理员的话,可以看不到,需要取得服务器本地管理员权限进去查看。

如果你认为这个错误没关系的话,可以忽略,知道MYSQL的置文件吧?进去,加这个:

vim /etc/my.cnf

slave-skip-errors=1007,1008,1032,1062

跳过去。不过有点风险。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7499941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存