安装环境
1、操作系统:Centos 7.0(Master),windows(Slave)
2、数据库版本:5.7.24(Master),5.7.17(Slave)
3、主机A:192.168.96.128(Master)
4、主机B:192.168.0.104(Slave)
Master的配置
1、新建需要主从复制的数据库main_db
2、在Linux环境下MySQL的配置文件的位置是在 /etc/my.cnf ,在该文件下指定Master的配置如下:
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=main_db
server-id用于标识唯一的数据库,这里设置为2,在设置从库的时候就需要设置为其他值。
binlog-ignore-db:表示同步的时候ignore的数据库
binlog-do-db:指定需要同步的数据库
3、重启mysql服务:service mysqld restart
4、进入mysql:mysql -u root -p,验证密码即可
5、赋予Slave机器File和replication slave的权限,允许slave可以从主库上读取bin-log内容
>GRANT FILE ON *.* TO 'root'@'192.168.0.104' IDENTIFIED BY 'mysql password';
>GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.0.104' IDENTIFIED BY 'mysql password';
>FLUSH PRIVILEGES
为了方便记忆,Master和Slave的账号密码一致。
6、重启mysql: service mysqld restart;
7、登录后,查看Master状态
其中File为Slave启动I/O线程时读取的文件,Binlog_Do_DB为复制的数据库,Position为变化值,用于Slave定位,Binlog_Ignore_DB为忽略的数据库。
Slave的配置
1、新建待复制的数据库main_db;
2、修改windows下mysql的启动文件my.ini,在mysqld节点下新增以下内容:
log-bin=mysql-bin // master中bin-log内容
server-id=3 // 标识唯一的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
replicate-do-db=main_db // 同步的数据库
replicate-ignore-db=mysql // 忽略的数据库
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
3、以管理员权限重启mysql:net stop mysql net start mysql
4、进入mysql命令行
mysql> stop slave; #关闭Slave
mysql> change master to master_host='192.168.96.128',master_user='root',master_password='****',master_log_file='mysql-bin.000003', master_log_pos=154; // 密码隐藏,请谅解
mysql> start slave; #开启Slave
5、查看Slave状态:show slave status \G;
添加其他需要同步的Slave
1、修改Linux中/etc/my.cnf,增加一行binlog-do-db=[同步的数据库]
2、重启Linux中的mysql
3、进入mysql命令行,执行:show master status
4、在Slave中新建需要同步的数据库
5、修改my.ini文件中增加一行replication-do-db=[同步的数据库]
6、重启mysql,进入mysql命令行,执行上一部分第4步
7、查看slave状态
Master/Slave均是Linux环境时,可参考《MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解》