MySQL中关于主从同步时应该注意的问题有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
在我门准备好了两台数据库服务器的基础上
1、须在主、从服务器配置文件 /etc/my.cnf指定
server_id (任意,建议指定不易混淆,有规律,有逻辑的)
binlog日志(一般不指定时日志名称默认为主机名-bin.00000x)
binlog-format="mixed" (指定日志格式,一般为混合格式“mixed”,根据需求而定)
注意: 如果以上没有指定,都会报错错;
2、在主库上面授权:允许用户对主库有复制权限 (replication:复制)
grant replication slave on . to 用户名@"服务器地址" identified by "密码";
必须要授权(从库无法指定主库并复制)
3指定组服务器:(缺一不可)
登录数据库
change master to master_host="主服务器地址"
master_user=“主库上的授权用户“
master_password="授权账户密码“
master_log_file= " 主服务器binlog日志名称“
master_log_pos=”binlog日志偏移量”
最后启动主从复制start slave
查看重服务器状态
Slave_IO_Running: (负责与主机的io通信)
Slave_SQL_Running: (负责自己的slave 数据库进程)
如果不出问题的话,主从同步就部署成功了,
但是这世界并不太平,如果IO线程启动失败
以下是我遇到的问题:
1、主服务器的防火墙没关,导致从服务器同步失败
解决方案:关闭防火墙;
2、主从服务器数据库中数据不一致,(部署主从服务时)
先将不同的部分备份到对方的数据库中保证数据的一致
(不建议删库删库删表)
3、binlog日志偏移量不对,从服务器找不到同步节点
打开主服务器binlog日志文件,找到数据偏移量,重新指定就可以了。
如果是SQL线程启动失败:
我碰到的情况如下:
1、Last_SQL_Error: Error 'Operation DROP USER failed for 'yy'@'192.168.4.10'' on query. Default database: 'alldb'. Query: 'drop user yy@192.168.4.10'
就是没有同步之前的的主库授权用户,在部署完之后发现从库上没有之前主库上的授权用户,然后我撤销了,从库的SQL线程就断了,所以要谨慎操作。
解决办法:一般都不是删除、撤销、当然就是在从库上做同样的授权。
2、Slave failed to initialize relay log info structure from the repository
当出现这种报错时:一般原因是默认中继日志relay_log被服务器上另一个mysql slave占用了;
解决方案:1、初始化中继日志, 即删除relay-log.info中继日志文件
2、在配置文件/etc/my.cnf 中指定中继日志名称
3、当配置高可用集群时,SQL线程启动失败报错如下
Master command COM_REGISTER_SLAVE failed: Access denied for user 'monitor'@'%' (using password: YES) (Errno: 1045)
当出现这种报错时:
1主服务器的级联复制功能未开启
解决方案:在配置文件中log_slave_updates # 允许级联复制,重起服务,还有是主库必须添加授权用户。
2还有就是删除授权用户,(不建议)。
综上所述:部署主从同步时对数据库服务器具有高度的统一性。
看完上述内容,你们掌握MySQL中关于主从同步时应该注意的问题有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。