问题:建立主从复制(单主单从M-S)后无法同步数据

这里首先对单主单从M-S的操作步骤先做下简要说明(具体操作略。。。)

一.环境准备(略); 二.master操作 1.开启主服务器二进制日志(并加入git选项); 2.在主服务器的MySQL上创建rep用户,并用create和insert命令模拟在MySQL上加入数据; 3.通过mysqldump命令逻辑备份master上的二进制日志,用scp命令发送给slave; 三.slave操作 1.验证用户rep是否能登录; 2.为避免slave上没必要的二进制文件,在导入master二进制日志时临时关闭slave从服务器二进制日志; 3.在MySQL中用source命令导入IO接收 的中继日志; 4.在slave中配置slave环境; 5.启动slave服务; (本篇问题所在步骤) 6.查看slave属性; 7.在master中修改数据,在slave上验证,如果能同步则说明主从完成同步。

在上述操作步骤中,在配置完slave后无法同步

无论在master上增删改都无法同步至slave上 通过show slave status\G 命令查看后显示slave_SQL_Running:No error 1007出现:

在/etc/my.cnf中加入一条命令就能解决这个错误: slave_skip_error=1007; 让MySQL跳过这个错误;

然后systemcal restart mysqld,重启mysqld; 以为现在可以同步了 但是再看slave属性,还存在一个错误:error 1050,仍然不能同步数据;

同上面的操作一样在/etc/my.cnf的配置文件中加入命令:slave_skip_error=1050;

然后重启mysqld; 这时候在看slave属性:

错误没有了,通过查询看见数据已经可以同步了,

这时候再从/etc/my.cnf中注释加入的两行命令: #slave_skip_error=1007; #slave_skip_error=1050;

MySQL依然同步(方法只对部分error有效)。

总结: 在master生成日志后,master中数据改动,在slave中导入中继日志后两个数据库的数据不一致,所以不能同步数据,在在配置文件中用skip跳过错误的之后,同步得意进行,slave从master上同步数据,工作得意正常进行。