转至:http://yestreenstars.blog.51cto.com/1836303/1568800
服配置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 # 读者也可以通过创建数据库等操作来验证是否同步。