mysql5.6的主从同步配置跟之前老版本的配置方法貌似有些区别,折腾了好几天才理解透和成功配置好mysql5.6主从同步。大家尽管拍砖。
master数据库:
master数据库配置文件my.cnf增加如下配置:
#主从配置
#[必须]服务器唯一ID,默认是1,一般取IP最后一段
server_id = 1
#[必须]启用二进制日志
log_bin=mysql-bin
##需要做主从备份的数据库名,如果复制多个数据库,重复设置这个选项即可,不填即记录所有数据库的binlog
##要复制的数据库,多个可换行过个设置
##binlog-do-db=databasename
##replicate-do-db=databasename ##这个和上个只选一个即可,具体区别没研究
#忽略数据库的binlog
binlog-ignore-db=mysql
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=yourignoredb
#只保留 3 天的二进制日志,以防磁盘被日志占满
expire-logs-days=3
#设置 binlog 的格式为 MIXED
binlog_format=MIXED
#若涉及及同步函数或者存储过程需要配置,否则主备会产生异常不能同步
#log_bin_trust_function_creators=TRUE
配置完成衙重启master数据库服务器
service mysqld restart
在master数据库上创建slave同步的用户
grant replication slave on *.* to 'slave'@'%' identified by 'slave';
FLUSH PRIVILEGES;
锁定master数据库防止被修改,会导致下面配置失败
FLUSH TABLES WITH READ LOCK;#锁表
备份需要主从的的数据库导入到slave数据库
这个可以使用mysqldump导出,source导入,不懂的自行找资料
取得master数据库的同步状态(后面需要用到)
在master数据库执行SHOW MASTER STATUS
得到两个需要的数据:
一个是File,一个是Position。记住
slave数据库操作
配置slave数据库my.cnf增加配置
#主从配置(从)
server_id = 2
replicate-do-db=db1#需要同步的数据库1
replicate-do-db=db2#需要同步的数据库2
配置完重启slave数据库服务器
service mysqld restart
导入master数据库服务器备份的数据库
导入导出就不多说了,不懂的更找百度吧
slave服务器停止同步服务,避免有些自动已经开启的
stop slave
执行同步配置(MASTER_USER,MASTER_PASSWORD参数分别是master服务器创建的同步用户、密码。MASTER_LOG_FILE即master服务器SHOW MASTER STATUS得到File值,MASTER_LOG_POS为Position值)
CHANGE MASTER TO MASTER_HOST='master服务器地址',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1947536;
启动slave服务器的同步服务
start slave
在slave服务器查看slave运行状态
show slave status
如果结果中的Slave_IO_Running 和Slave_SQL_Running都为Yes的话,即表示成功啦
注意:mysql5.6 的主从有别于之前的版本,所以也折腾了好久才总结出来的mysql5.6主从配置方法。
题外话,广州学车C1C2驾驶证增驾B2B1A1A2A3请找:
广州学车贤安驾校