mysql 主主复制

1. 环境:Red Hat 4.1.2-52,MySQL5.5.20

2. 两台机器:
master1:192.168.76.7
master2:192.168.76.10

3. 单独编译安装MySQL,并测试连接成功。

4. 两台机器上都建立用户,并赋予复制权限:
master1:
//1.mysql> CREATE USER 'repl'@'192.168.76.10';
2.mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.76.10' IDENTIFIED BY '123456';
master2:
//1.mysql> CREATE USER 'repl'@'192.168.76.7';
2.mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.76.7' IDENTIFIED BY '123456';
host是随便设置的,只要是对方可以连接上即可。权限方面,只需要有REPLICATION SLAVE权限即可。


5. master1上的my.cnf添加:
[mysqld] 
# for repl 
server-id = 1 
log-bin = mysql-bin 
auto-increment-increment = 2 # 应设为整个结构中服务器的总数 
auto-increment-offset = 1 # 设定数据库中自动增长的起点,避免两台服务器数据同步时出现主键冲突


6.aster2上的my.cnf添加:
[mysqld] 
# for repl 
server-id = 2 
log-bin = mysql-bin 
auto-increment-increment = 2 
auto-increment-offset = 2


7.重启两台机器上的服务。




8. master1上指定master2为主:
mysql> CHANGE MASTER TO MASTER_HOST='192.168.76.10', MASTER_USER='repl', MASTER_PASSWORD='123456';
Query OK, 0 rows affected (0.19 sec)


mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)

9. master2上指定master1为主:
mysql> CHANGE MASTER TO MASTER_HOST='192.168.76.7', MASTER_USER='repl', MASTER_PASSWORD='123456';
Query OK, 0 rows affected (0.18 sec)


mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)

10. 测试
实验1:启动两个服务,在任一mysql上进行操作,在另一mysql上均能体现出来。


ps,MySQL的主主复制实际上就是双向的主从复制。

你可能感兴趣的:(mysql 主主复制)