由于部分业务要用到俩台服务器主从同步数据,不需要全部同步表,只同步部分表即可,这里做个笔记
开始之前你要保证主库和从库的数据一致,这里我就不多说了
1、主服务器主库配置
1、配置主服务器my.conf文件
vim /etc/my.cnf #[mysqld]中增加代码 server-id=1 log_bin=mysql-bin #不同步数据库 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema #只仅同步数据库 binlog-do-db=newkw #mysql复制模式,三种:SBR(基于sql语句复制),RBR(基于行的复制),MBR(混合模式复制) binlog_format=MIXED #混合模式复制,可靠性更高
2、给主服务器中创建用户(此用户可以在从服务器进行连接主服务器用的,不要设置错了)
设置完成后,测试下是否可以在从库远程连接主库,可能有防火墙之类的,测试连接完毕后,在进行下一步
MySQL [(none)]> grant all privileges on db_name.* to db_user@'%' identified by 'db_pass'; #授权语句,特别注意有分号 MySQL [(none)]> flush privileges;
3、锁住主服务器表(防止日志产生)
flush tables with read lock;
4、查看主库状态
这里的File和Position会在从库中用到,需要注意下
show master status \G
1、从服务器从库配置
1、配置从服务器my.conf文件
vim /etc/my.cnf #[mysqld]中增加代码 server-id=2 log_bin=mysql-bin binlog_format=MIXED # 需要同步的表 多个分行写 replicate-do-table=newkw.kw_user replicate-do-table=newkw.kw_weixin
2、从库设置复制主库数据账号
change master to master_host='主mysql服务器ip',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=19416434;
3、启动从库复制
start slave;
4、不要忘了解锁主库
unlock tables;
5、查看从库是否同步上主库
当Slave_IO_Running: Yes Slave_SQL_Running: Yes 都为yes同步成功
show slave status;