MySQL5.7
CentOS6.8
VirtualBox
一、数据库规划
主:192.168.56.102:3306
从:192.168.56.103:3306
安装参看我之前的文章《CentOS6安装MySQL5.7》,要求两台服务器OS一致、数据库版本一致。
开通防火墙端口,设置开机启动。
本次配置采用基于日志的方式进行主从复制。
二、主DB设置
修改MySQL配置:按照《CentOS6安装MySQL5.7》的方法安装,执行vi /etc/my.cnf,如果是其他方法安装,请先找一下my.cnf的地址。
增加如下内容:
log-bin=mysql-bin
server-id=102 #要保证唯一,可以设置为IP的最后一段
重启MySQL:
service mysqld restart
登录MySQL,创建授权用户repl:
CREATE USER 'repl'@'%' IDENTIFIED BY 'MyNewPwd4!';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.56.%' IDENTIFIED BY 'MyNewPwd4!';
FLUSH PRIVILEGES;
查看主DB状态:
show master status;
将会显示一列数据,记住以下两个字段,从DB需要用:
File:mysql-bin.000001
Position:154
至此,主DB配置完毕。
三、从DB配置
vi /etc/my.cnf
增加以下内容:
server-id=103
重启MySQL:
service mysqld restart
连接主DB:
stop slave;
change master to master_host='192.168.56.102',master_user='repl',master_password='MyNewPwd4!',master_log_file='mysql-bin.000001', master_log_pos=154;
start slave;
查看状态:
show slave status G;
至此从DB配置完毕,可以在主DB上进行数据的增删改,会同步到从DB上。
四、其他
以上的配置是基础配置,还有一些扩展的配置项,这里提一提,详细的还需根据自己的实际情况进行配置。
主DB的my.cnf
#指定复制的库,多个库写多行
binlog-do-db=AAA
binlog-do-db=BBB
#指定不复制的库,多个库写多行
binlog-ignore-db=CCC
binlog-ignore-db=DDD
#日志模式改为行模式 ROW|STATEMENT|MIXED
binlog-format=row
复制不复制,这两种配置互斥,写一种就行。
日志模式三种区别这里不赘述。默认是语句模式。
从DB的my.cnf
#需要复制的库,多个库写多行
replicate-do-db=AAA
replicate-do-db=BBB
#不需要复制的库,多个库写多行
replicate-ignore-db=CCC
replicate-ignore-db=DDD