环境:1、(主)阿里云ECS服务器 linux centOS 7.2 64位
2、(从) windows 10 64位
3、(mysql)要求版本一致,均采用 mysql-5.7.22-winx64 版本
一、主服务设置
在linux中的 /etc/my.cnf (mysql的配置文件路径)
执行 vi my.cnf 进行编辑
在文件的 [mysqld] 下 添加设置,保存
log-bin = mysql-bin
server-id = 1
binlog-do-db = test
参数注解:
binlog-do-db=test 表示需要备份的数据库为test
binlog-ignore-db=mysql 表示不需要备份的数据库为mysql
如果两个都不设的话,从服务器会复制主服务器的全部数据库
log-bin=mysql-bin 表示开启二进制日志,并把二进制日志前缀改为mysql-bin
二、从服务设置
在 mysql 的 my.ini 中的 [mysqld] 中添加设置,保存
log-bin=mysql-bin (与主服务的一致)
server-id = 2
replicate-do-db=test
#同步某表用 replicate-wild-do-table
replicate-wild-do-table =test.test
replicate-wild-do-table =test.test1
replicate-wild-do-table =test.test2
三、分别启动主从服务的mysql
主:mysql中执行
在 mysql.user表中创建 mytest用户:
create user 'mytest'@'%' identified by '123456';
给mytest用户配置主从复制的权限:
grant replication slave on *.* to 'mytest'@'%' identified by '123456';
刷新权限:
flush privileges;
查看主服务状态:
show master status;
从:mysql中执行
主从设置:
change master to master_host='服务器地址',master_user='mytest',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=5759;
参数详解:
master_host: 主服务器的IP
master_user: 主服务器上新创建的用户名
master_password: 用户的密码
master_port: 主服务器的端口,如果未曾修改,默认即可。
master_log_file: 主服务器二进制日志文件的名称,填写查看主服务器的master状态时显示的File的值
master_log_pos: 日志的位置,填写查看主服务器的master状态时显示的Position的值
启动从服务:
start slave;
查看从服务状态:
show slave status \G ( Slave_IO_Running 和 Slave_SQL_Running 都是yes即可 )
完成