mysql 三主_MySQL主主复制3
一、創(chuàng)建并授權(quán)用戶
在每一臺(tái)(主)服務(wù)器上創(chuàng)建一個(gè)用戶,并為之授權(quán),使它們可以互相訪問彼此的數(shù)據(jù)庫
在Server-1上:
創(chuàng)建一個(gè)充許Server-2來訪問的用戶server2,密碼為:server2
mysql> GRANT REPLICATION SLAVE ON *.*
> TO ‘server2’@’192.168.0.2’ IDENTIFIED BY ‘server2’;
在Server-2上:
創(chuàng)建一個(gè)充許Server-1來訪問的用戶server1,密碼為:server1
mysql> GRANT REPLICATION SLAVE ON *.*
> TO ‘server1’@’192.168.0.1’ IDENTIFIED BY ‘server1’;
編者注:最好整成同一個(gè)用戶和同一個(gè)密碼!!
二、修改MySQL主配置文件
在MySQL的主配置文件中修改/添加如下內(nèi)容:
Server-1上:
[mysqld]
server-id = 10
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2
auto-increment-offset=1
# service mysqld restart
Server-2上:
[mysqld]
server-id = 20
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2
auto-increment-offset =2
# service mysqld restart
注:二者只有server-id不同和 auto-increment- offset不同
auto-increment-offset是用來設(shè)定數(shù)據(jù)庫中自動(dòng)增長(zhǎng)的起點(diǎn)的,因?yàn)檫@兩臺(tái)服務(wù)器都設(shè)定了同一個(gè)自動(dòng)增長(zhǎng)值2,所以它們的起點(diǎn)必須得不同,這樣才能避免兩臺(tái)服務(wù)器數(shù)據(jù)同步時(shí)出現(xiàn)主鍵沖突
replicate-do-db 指定同步的數(shù)據(jù)庫,我們只在兩臺(tái)服務(wù)器間同步mydb數(shù)據(jù)庫
另:auto-increment-increment的值應(yīng)設(shè)為整個(gè)結(jié)構(gòu)中服務(wù)器的總數(shù),本案例用到兩臺(tái)服務(wù)器,所以值設(shè)為2
三、復(fù)制其中一臺(tái)服務(wù)器的數(shù)據(jù)庫到另外一臺(tái)服務(wù)器
這一步中誰做為源數(shù)據(jù)不重要,重要的是在正式的復(fù)制(Replication)開始之前兩臺(tái)服務(wù)都能準(zhǔn)確的反應(yīng)彼此的數(shù)據(jù)。
我們可以先從源數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù)到備份文件,這里我們使用mysqldump命令
以Server-1上數(shù)據(jù)庫為源數(shù)據(jù)庫
備份數(shù)據(jù)前先鎖表,保證數(shù)據(jù)一致性
mysql> FLUSH TABLES WITH READ LOCK;
> SHOW MASTER STATUS;
+—————–+————+—————-+——————–+
|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————–+————+—————-+——————–+
|mysql-bin.000006 | 213 | | |
+—————–+————+—————-+——————–+
該結(jié)果顯示,源服務(wù)器現(xiàn)在處于6號(hào)二進(jìn)制文件的213位置
開始備份數(shù)據(jù)庫
# mysqldump –user=root -p mydb > /tmp/mydb.sql
備份完畢,現(xiàn)在可以解鎖數(shù)據(jù)庫表
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)
四、將備份數(shù)據(jù)導(dǎo)入Server-2
先在Server-2上創(chuàng)建一個(gè)與mydb同名的空數(shù)據(jù)庫
# mysql
> CREATE DATABASE mydb;
>\q
# scp 192.168.0.1:/tmp/mydb.sql ./
# mysql -uroot -p mydb < /tmp/mydb.sql
此時(shí),我們需要注意當(dāng)前服務(wù)器的二進(jìn)制日志的位置
# mysql
> LOCK TALBES WITH READ LOCK;
> SHOW MASTER STATUS;
+—————–+————+—————-+——————–+
|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————–+————+—————-+——————–+
|mysql-bin.000001 | 106 | | |
+—————–+————+—————-+——————–+
1 row in set (0.00 sec)
> UNLOCK TABLES;
五、互相通告二進(jìn)制日志位置
在Server-1上:
# mysql
> CHANGE MASTER TO
> MASTER_HOST=’192.168.0.2′,
> MASTER_USER=’server1′, //???
> MASTER_PASSWORD=’server1′,
> MASTER_LOG_FILE=’mysql-bin.000001′,
> MASTER_LOG_POS=106;
在Server-2上:
# mysql
> CHANGE MASTER TO
> MASTER_HOST=’192.168.0.1′,
> MASTER_USER=’server2′,
> MASTER_PASSWORD=’server2′,
> MASTER_LOG_FILE=’mysql-bin.000006′,
> MASTER_LOG_POS=213;
六、啟動(dòng)復(fù)制(Replication)功能
在兩臺(tái)主機(jī)上分別執(zhí)行
# mysql
> START SLAVE;
配置到此完成!
總結(jié)
以上是生活随笔為你收集整理的mysql 三主_MySQL主主复制3的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频剪辑软件调研
- 下一篇: 第五章第四十九题(对元音和辅音进行计数)