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一下,在執行第三步,查看每個服務器的二進制日誌及事件的位置,進行第四五步操作即可。