Welcome 微信登录

首页 / 数据库 / MySQL / MySQL5.6配置同步复制的新方法以及常见问题的解决方法

MySQL5.6新增一种不用设置log_bin文件和log位置的方法,之前我们都需要查看master机器信息(show master status),然后在slave设置master_host="10.163.213.228",master_user="repl",master_password="sangfordb",master_log_file="mysql-bin.000015",master_log_pos=193952;使用mysql5.6后可以不用这种方法配置了,只要设置my.cnf文件log-bin=mysql-binbinlog_format=rowlog_slave_updatesgtid-mode=ONenforce-gtid-consistency=ON然后在slave中设置:change master tomaster_host="masterip",master_user="replicationuser",master_password="password",master_AUTO_POSITION=1;其中masterip、replicationuser和password分别对应你master机的信息常见问题:1、show slave status中Slave_IO_State: Waiting to reconnect after a failed registration on master解决方法:在master上执行grant replication slave on *.* to "repl"@"%" identified by "password";FLUSH PRIVILEGES;然后重新stop slave 和start slave就可以2、show slave status中Slave_IO_Running: NoLast_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.解决办法:每个库的uuid应该是不一样的,修改auto.cnf文件(在mysql 的data目录下)的uuid:[auto]server-uuid=6dcee5be-8cdb-11e2-9408-90e2ba2e2ea6按照这个16进制格式,随便改下,重启mysql即可。3、从库中slave_sql_running为NO一般在 Last_SQL_Error:项中可以看到报错的语句Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。这时,网上很多会教使用SET global sql_slave_skip_counter=n; 设置,但其实执行这个语句都会报错,因为启动了gtid-mode=ON解决方法:跳过执行报错的语句查看show slave status的最后两行:Retrieved_Gtid_Set表示已经从master中拉取过来的事务;Executed_Gtid_Set表示已经执行的事务找到Executed_Gtid_Set中与Retrieved_Gtid_Set ID一致的记录,如上图ca83d308-2ea5-11e4-b85f-00163e042f50:1-5,表示只执行到第五个事务,就是这个事务报错了,因此跳过这个事务即可。依次执行以下语句:stop slave;set gtid_next="ca83d308-2ea5-11e4-b85f-00163e042f50:6";begin;commit;set gtid_next="AUTOMATIC";start slave;然后再查看show slave statusG如果看到以下状态即可以了PS:启动主从备份时,一定要确保主从的数据一致,因为从库遇到任何报错,即使执行update语句时,主库中的一条记录在从库中找不到,都会报导致问题2的出现,从而停止执行slave更新--------------------------------------分割线 --------------------------------------Ubuntu 14.04下安装MySQL http://www.linuxidc.com/Linux/2014-05/102366.htm《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF http://www.linuxidc.com/Linux/2014-03/98821.htmUbuntu 14.04 LTS 安装 LNMP NginxPHP5 (PHP-FPM)MySQL http://www.linuxidc.com/Linux/2014-05/102351.htmUbuntu 14.04下搭建MySQL主从服务器 http://www.linuxidc.com/Linux/2014-05/101599.htmUbuntu 12.04 LTS 构建高可用分布式 MySQL 集群 http://www.linuxidc.com/Linux/2013-11/93019.htmUbuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb http://www.linuxidc.com/Linux/2013-08/89270.htmMySQL-5.5.38通用二进制安装 http://www.linuxidc.com/Linux/2014-07/104509.htm--------------------------------------分割线 --------------------------------------本文永久更新链接地址