解决方法:删除掉勾选自动递增前增加的用户信息,勾选上自动递增,再次执行代码就正常了!
希望能帮助你,还请及时采纳谢谢!
mysql主从同步常见异常及恢复方法
1. 一般的异常只需要跳过一步即可恢复
>slave stop
>SET GLOBAL sql_slave_skip_counter = 1
>slave start
2.断电导致主从不能同步时,通主库的最后一个bin-log日志进行恢复
在主库服务器上,mysqlbinlog mysql-bin.xxxx >binxxxx.txt
tail -n 100000 binxxxx.txt >tail-binxxxx.txt
vim tail-binxxxx.txt 打开tail-binxxxx.txt文件找到最后一个postion值
然后在从库上,change host to 相应正确的值
>slave stop
>change master to master_host='ip', master_user='username', master_password='password', master_log_file='mysql-bin.xxxx', master_log_pos=xxxx
>slave start
>show slave status\G
3.主键冲突、表已存在等错误代码如1062,1032,1060等,可以在mysql主配置文件指定
略过此类异常并继续下条sql同步,这样也可以避免很多主从同步的异常中断
[mysqld]
slave-skip-errors = 1062,1032,1060
当mysql出现”ERROR 1062”错误时:查看字段的属性是否合理,不合理,则修改该字段的属性;合理,则进行表的恢复。如下图也有可能是:ERROR 1062: Duplicate entry ‘13747’ for key 1 等(所有这种1062类型的错误)。
本地数据库:mysql -u用户名 -p密码 (本地) 远程数据库:mysql -h地址(ip如192.16.1.1) -u用户名 -p密码 -P端口号
首先查看数据库中该字段类型是否合理,比如字段的类型和定义的长度等是否与实际存入的值不相符,用 show create table 表名 查看表的结构,下图是接着上图错误进入数据库中查看字段属性。
检查”come_from” 字段类型与大小是否合理,若不合理则用以下命令修改该字段的属性:
alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空],alter table 表名称 modify 字段名称 字段类型 [是否允许非空]。
最后,如果检查发现字段定义不存在问题,那我们可以用:repair table 表名 语句进行表恢复,表越大,需要的时间越长,慢慢等就是了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)