Mysql主主服务器
搭建主主服务器的过程
由于一些步骤同主从服务器的相同,所以我就不在做详细说明,如有疑问请仔细看看主从服务器的搭建
1、在两台服务器上各自建立一个具有复制权限的用户;
mysql> grant replication client,replication slave on *.* to repl@'172.16.%.%' identified by 'redhat';
2、修改配置文件:
第一个主服务器上
[mysqld]
server-id = 10
log-bin = mysql-bin
auto-increment-increment = 2 由于两个服务器都是主服务器,都可以写的,所以为了解
auto-increment-offset = 1 觉插入数据时类似ID那种自动增长的造成冲突,特定义一
下,每次自动向后递推几个
第二个主服务器上
[mysqld]
server-id = 20
log-bin = mysql-bin
auto-increment-increment = 2
auto-increment-offset = 2
3、如果此时两台服务器均为新建立,且无其它写入操作,各服务器只需记录当前自己二进制日志文件及事件位置,以之作为另外的服务器复制起始位置即可
第一个主服务器
mysql> show master status \G;
************************** 1. row ***************************
File: mysql-bin.000001
Position: 710
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
第二个主服务器
mysql> show master status \G;
*************************** 1. row ***************************
File: mysql-bin.000003
Position: 811
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
4、各服务器接下来指定对另一台服务器为自己的主服务器即可:
第一个主服务器
mysql> change master to master_host='172.16.19.10',master_user='repl',master_password
='redhat',master_log_file='mysql-bin.000003',master_log_pos=811;
第二个主服务器
mysql> change master to master_host='172.16.19.9',master_user='repl',master_password
='redhat',master_log_file='mysql-bin.000001',master_log_pos=710;
5、可以启动服务进行查看
第一个主服务器
mysql> start slave;
mysql> show slave hosts;
+-----------+------+------+-----------+
| Server_id | Host | Port | Master_id |
+-----------+------+------+-----------+
| 20 | | 3306 | 1 |
+-----------+------+------+-----------+
第二个主服务器
mysql> start slave;
mysql> show slave hosts;
+-----------+------+------+-----------+
| Server_id | Host | Port | Master_id |
+-----------+------+------+-----------+
| 10 | | 3306 | 1 |
+-----------+------+------+-----------+
如果是对一台已经有数据的主服务器创建主服务器的话,只需要将主服务器的数据备份一下,在要创建的主服务器上source一下,在执行第三步,查看每个服务器的二进制日志及事件的位置,进行第四五步操作即可。