配置MySQL服务器实现主主复制

声明
作者:昨夜星辰
博客:http://yestreenstars.blog.51cto.com/
本文由本人创作,如需转载,请注明出处,谢谢合作!

目的

配置MYSQL服务器实现主主复制。

实验环境

服务器1(以下简称S1):

IP:192.168.1.88

服务器2(以下简称S2):

IP:192.168.1.89

OS:CentOS 6.2 32

MYSQL:5.1.73

配置

# 先停止S1和S2的iptables防火墙。
service iptables stop
 
# 修改S1的/etc/my.cnf文件,在[mysqld]字段下添加以下内容:
log-bin=mysql-bin
log-slave-updates
server-id=1
 
# 同理,修改S2的/etc/my.cnf文件,在[mysqld]字段下添加以下内容(注意server-id不能一样):
log-bin=mysql-bin
log-slave-updates
server-id=2
 
# 重启S1和S2的mysqld服务。
service mysqld restart
 
# 登录S2的数据库,执行锁表命令,防止在查看二进制日志文件时有人对数据进行修改操作,然后再执行查看命令,记录二进制日志文件名和当前位置。
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      191 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 
# 登录S1的数据库,创建用于复制的用户并将S2配置成主复制服务器(读者注意根据实际情况修改具体参数)。
mysql> grant replication slave on *.* to 'slave'@'192.168.1.89' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> change master to master_host='192.168.1.89',master_user='slave',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=191;
Query OK, 0 rows affected (0.05 sec)
 
# 在S1的数据库上执行锁表和查看二进制日志文件信息的命令。
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      260 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 
# 在S2的数据库执行解锁表命令,并创建用于复制的用户并将S1配置成主复制服务器。
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> grant replication slave on *.* to 'slave'@'192.168.1.88' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> change master to master_host='192.168.1.88',master_user='slave',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=260;
Query OK, 0 rows affected (0.03 sec)
 
# 在S1的数据库执行解锁表命令,并启动复制。
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
 
# 在S2的数据库启动复制。
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
 
# 最后,执行show slave status;命令可以查看配置是否成功,如果下面这两个为YES即为成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
           
# 读者也可以通过创建数据库等操作来验证是否同步。

相关推荐