刚才又一个一不小心,在Slave上执行了更改数据库schema的操作,结果是这台服务器在mmm_control中的状态就变成了:REPLICATION_FAIL。先通过writer执行了同样的操作,保证服务器正常运行,然后就考虑把这台slave重新拉回到mysql-mmm阵营。
看了一下执行的增量SQL文件,它进行的主要操作有:为一个表A添加三个字段A1、A2、A3,增加一个新表B,为表C增加一个字段C1,其中C1为外键CF1(关键点是:外键的名字和字段的名字相同,假设都为C1),关联B的主键B1。所以接下来要进行的就是回滚这些操作:
1、删除A表中的新增的三个字段:
ALTER TABLE A DROP COLUMN A1;
ALTER TABLE A DROP COLUMN A2;
ALTER TABLE A DROP COLUMN A3;
2、删除C表中的外键CF1,然后删除C1:
ALTER TABLE C DROP FOREIGN C1;
执行这条语句得到了下面的错误信息:
ERROR 1025 (HY000): Error on rename of './db1/C' to './db1/#sql2-31ef-2c2d4e' (errno: 152)
那么直接删除字段C1呢:
ALTER TABLE C DROP COLUMN C1;
得到的错误信息是:
ERROR 1025 (HY000): Error on rename of './db1/#sql-31ef_2c2d4e' to './db1/C' (errno: 150)
问题的原因在上面已经提示到了:外键和字段使用了同样的名字。
解决方法:
1、先通过
SHOW CREATE TABLE C;
找到创建外键的语句:
CONSTRAINT `C_ibfk_2` FOREIGN KEY (`C1`) REFERENCES `B` (`B1`) ON DELETE SET NULL ON UPDATE CASCADE
2、 通过CONSTRAINT的名字删除外键:
ALTER TABLE C DROP FOREIGN KEY C_ibfk_2;
然后再执行其他后续操作就可以了。
解决上面的问题后,通过“START SLAVE”重新启动slave线程,过一会儿再去查看mmm_control的状态,发现该slave已经回来了。
参考资料:
http://dev.mysql.com/doc/refman/5.0/en/innodb-error-codes.html
分享到:
相关推荐
解决log4j:ERROR Failed to rename, win系统占用文件无法改名字的问题
log4j:ERROR Failed to rename错误; 网上查找了下原因,大概意思是日志文件始终被占有,所以当log4j对日志文件进行rename时,就发生了Failed to rename错误 。要修改log4j的源码,附件是我修改好后的,方便大家...
log4j:ERROR Failed to rename错误解决办法 http://www.blogjava.net/DreamAngel/archive/2011/11/10/363400.html
log4j:ERROR Failed to rename
log4j:ERROR Failed to rename错误解决办法,修改源码里的DailyRollingFileAppender类,用此jar包就不会再出现ERROR Failed to rename的错误了
包括修改后的[color=darkred]org.apache.log4j.DailyRollingFileAppender[/color]类的源代码和已编译好的文件. 请用DailyRollingFileAppender.class替换log4j-1.2.15.jar包里相应的类. 博文链接:...
Visual C++中,用MFC的CFile::Rename给文件改名
前言 最近发现了一个问题,运行 npm ... Error: EPERM: operation not permitted, rename ‘/usr/share/nginx/html/tanteng.me/node_modules/duplexify' -> ‘/usr/share/nginx/html/tanteng.me/node_modules/.duple
集值映射的包络上图导数研究,冯敏,刘金魁,本文首先提出了一种包络上图导数的概念,它是集值映射的上图导数的一种推广。其次,我们研究了包络上图导数的一些性质。最后,我
Freerename是一款功能强大并且操作简便的文件改名工具,没有任何使用限制,可以对所有的文件进行快速方便的重命名。 功能介绍 支持对文件及文件夹进行更名; 可以更改文件及文件夹的属性; 可以更改...
以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名、移动文件的目的。不过后来经常发现问题:File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来...
MySQL:MySQL不能删除外键,抱错Error on rename of ./ruler/test2child to ./ruler/#sql2-298-92 ...ERROR 1025 : Error on rename of ''./ruler/test2child'' to ''./ruler/#sql2-298-8f'' (errno: 152) 这里并不是
python3 server.py 127.0.0.1 8888 ...AttributeError: module ‘os’ has no attribute ‘exit’ 部分代码入下: from socket import * import sys,os #实现登录 def do_login(s,user,name,addr): for i in user: i
Tag Rename可以重命名MP3音乐,通过MP3音乐内置的TAG标签来重新命名你的歌曲文件,编辑文件夹封面艺术,多文件标签管理器编辑音乐的注释,编辑文件标题艺术家,所属专辑及音乐年份,作曲家及原始艺术家等信息,还...
问题描述: 在使用git 进行提交时, 出现上面这个报错, 导致无法提交. 报错大致意思就是创建index.lock文件失败,因为已经存在index.lock文件了. index.lock文件是在.git下面, 而.git是一般是隐藏的, 那么可以通过以下...
安装报错信息 24741 error code EPERM 24742 error syscall unlink ...24745 error Error: EPERM: operation not permitted, unlink 'E:\workspaces\multiplatform\node_modules\.staging\regexpp-c7c4
Rename zhuru
Rename Master is a freeware utility designed to rename multiple files with a just few clicks. Anyone that has worked with websites, file archives, or collections of music, videos, or pictures has ...