您的位置:首页 > 数据库 > MySQL

MySQL 主主(双主)复制

2015-08-05 15:36 567 查看
MySQL主主(双主)复制
主主复制:就是双向的主从复制,也就是互为对方的从服务器,每台服务器即是对方的主服务器,又是对方的从服务器
MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知下一次更新。

配置步骤:

1) 环境准备:

服务器:192.168.12.129和192.168.12.131

数据库:my_db,数据的名字可相同,也可以不同。

数据库用户信息: repl_user/123456(为了方便记忆,2个数据库用户名和密码都相同)

2) 用户赋权:

分别在2台数据库授权:

(A)在129数据库上执行以下命令:

grant replication slave on *.* to ' repl_user '@'192.168.12.131'identified by '123456';

(B)在131数据库上执行以下命令:

grant replication slave on *.* to ' repl_user'@'192.168.12.129' identified by '123456';

3) 数据库配置文件/etc/my.cnf(下面只截取主主复制部分的参数配置)

192.168.12.129服务器上的配置:



192.168.12.131服务器上的配置:



以上注意的地方是:

server-id:这个每台数据库不能相同

1) 登录主服务器的mysql,查询master的状态



注:执行这步后,不要再操作主mysql数据库,防止主服务器状态值变化。

5) 配置从服务器Slave:

(这里先以192.168.12.129为master,以192.168.12.131为slave先做,因为主主复制就是双向的主从复制,所以这个操作完后,要反向再操作一次)

在从mysql数据库里执行如下命令:

mysql> slave stop;
Query OK, 0 rowsaffected (0.01 sec)

mysql>change master
to master_host='192.168.12.129', master_user='repl_user', master_password='123456',
master_log_file='mysql-bin.000009',master_log_pos=1663;
Query OK, 0 rowsaffected (0.01 sec)

mysql> slave start;
Query OK, 0 rowsaffected (0.00 sec)
mysql> show slave status\G;

执行上面最后一条命令后,会显示slave status信息,其中Slave_IO_Running和Slave_SQL_Running这2个的值都为yes的时候,配置就成功了。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

6) 测试:

这里省略,已经测过建表,删除表,数据的增,删,改的复制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: