MySQL主从复制
前提是:主DB server和从DB server的数据库版本一致,库名一致,主DB server开启二进制日志,而且两者的server id必须唯一(两者的server id取ip地址最后一位就好)。
1)主DB server配置
1. vim /etc/my.cnf
如果etc下没有my.cnf,cp /usr/share/mysql/my-default.cnf /etc/my.cnf
binlog-do-db=db1 //同步db1
binlog-ignore-db=mysql //不同步 mysql
#启用二进制日志
log-bin=mysql-bin
#服务器唯一ID,一般取IP最后一段
server-id=128
修改完成后 service mysql restart
2.授权给slave
mysql>GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456'; //赋给back权限
刷新权限 flush privileges;
查看当前有哪些用户 mysql>select user,host from mysql.user;
3.查询master状态
mysql> show master status; //复制file和Position用作从DB server配置中。
2)从DB server配置
1.vim /etc/my.cnf
在尾部添加 server-id=129
完成后 service mysql restart
2.配置从服务器
mysql>change master to master_host='192.168.137.128',master_port=3306,master_user='backup',master_password='123456',master_log_file='(file)',master_log_pos=(Position);
//对应master状态中的file 、 Position
3.检查状态
输入 show slave status
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
附录:每次重启主DB server后 file和Position都会改变,如果重启主DB server的话,应该从附属DB server的第二步开始重新配置。
网友评论