赞
踩
在配置主从复制,传统的方式里,你需要找到binlog和POS点,然后change master to指向.在mysql5.6里,无须再知道binlog和POS点,只需要知道master的IP/端口/账号密码即可,因为同步复制是自动的,mysql通过内部机制GTID自动找点同步。
注意:mysql5.6.14版本以下不要使用GTID。
主数据库配置:
修改linux系统的/etc/my.conf文件[优化后的详细配置看文件夹/master/my.conf]
解析一下配置中一些重要的参数:
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=true
这3个作为数据库启动GTID配置所用,不能漏缺
指定要记录二进制日志的数据库
binlog-do-db=x_test
replicate-do-db=x_test
指定要忽略记录二进制日志的数据库
binlog-ignore-db=mysql,information_schema,performance_schema,test
replicate-ignore-db=mysql,information_schema,performance_schema,test
主数据库操作配置:
配置后重启服务器
/etc/init.d/mysqld reset
进入mysql数据库
mysql -uroot -p123456
先创建授权主从同步用户
grant replication slave on *.* to 'zhang'@'%' identified by '123456';
flush privileges;
查看我们当前的同步数据信息
show master status;
查看GTID模式是否已经打开(注意enforce_gtid_consistency和gtid_mode均为ON)
show global variables like '%GTID%'
从数据库配置:
修改linux系统的/etc/my.conf文件[优化后的详细配置看文件夹/slave/my.conf]
解析一下配置中一些重要的参数:
其他的大概跟主数据库类似,有几个地方不一致
server_id =1001 必须跟主数据库不一致,而且多个从数据库都不一致
log-bin=mysql33071-bin 也必须跟主数据库不一致,而且多个从数据库都不一致
从数据库操作配置:
配置后重启服务器
/etc/init.d/mysqld reset
进入mysql数据库
mysql -uroot -p123456
防止之前曾经与主数据库同步过
reset master;
关闭当前的同步线程
stop slave;
与主数据库进行同步连接
change master to
-> master_host='192.168.23.73',
-> master_user='zhang',
-> master_password='123456',
-> master_port=3306,
-> master_auto_position = 1,
-> master_delay=30;
#/* 下面是一部分注解:
#/* 指定主DB server的IP地址
master_host='192.168.23.73'
#/* 指定用于同步的用户[这个就是我们在主DB server授权的用户]
master_user='zhang'
#/* 指定用于同步的用户的密码
master_password='123456'
#/* 指定主DB server的端口[下面一个例子,可以重点看这个]
master_port=3306
#/* 自动寻找position号
master_auto_position = 1
#/* 延时30秒执行复制,relay日志会及时同步到slave机,只是日志的中的事件会根据事件的时间戳延时30秒执行.此参数具有实用性
master_delay=30
然后进行主数据库连接
start slave;
再进行查看主从数据库情况
SHOW slave STATUS \G
其中两个参数如果是yes就表示主从同步正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
再看Read_Master_Log_Pos的数值是否与主数据库的Position一致。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。