共計 2711 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章主要介紹“mysql 主主和主從的搭建方法”,在日常操作中,相信很多人在 mysql 主主和主從的搭建方法問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”mysql 主主和主從的搭建方法”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
建立 mysql 主主
server1_mysql:192.168.1.108
server2_mysql: 192.168.1.110
拓撲結構:
server1_mysql——-server2_mysql
1. 創建用戶并授權
server1:
mysql GRANT REPLICATION SLAVE ON *.* TO
IDENTIFIED BY server2
mysql flush privileges;
server2:
mysql GRANT REPLICATION SLAVE ON *.* TO
IDENTIFIED BY server1
2. 修改 Mysql 的主配置文件 /etc/my.cnf
server1:
log-bin=mysql-bin #必須要開啟二進制日志
server-id = 1 #另外一臺 id 改成 2
binlog-do-db=test #填寫需要同步的
binlog-ignore-db= #填寫不需要同步的數據庫
replicate-do-db=test #填寫需要同步的數據庫
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=1 #每次增長 2
auto_increment_offset=1 #設置自動增長的字段的偏移量,即初始值為 2
啟動 Mysql 服務:
# service mysqld restart
server2:
log-bin=mysql-bin #必須要開啟二進制日志
server-id = 2
binlog-do-db=test #填寫需要同步的數據庫
binlog-ignore-db=mysql #填寫不需要同步的數據庫
replicate-do-db=test #填寫需要同步的數據庫
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2 #每次增長 2
auto_increment_offset=1 #設置自動增長的字段的偏移量,即初始值為 2
啟動 Mysql 服務:
# service mysqld restart
注:二都只有 server-id 不同和 auto-increment- offset 不同
auto-increment-increment 的值應設為整個結構中服務器的總數,本案例用到兩
臺服務器,所以值設為 2。
3. 重新啟動兩個服務器
# service mysqld restart
4. 為了讓兩個數據庫一樣,我們備份其中一個數據庫,然后在另一個數據庫上恢
復,這樣是兩個數據庫一開始都是一樣的。
在 server1 上操作:
# mysqldump –databases luowei /tmp/luowei.sql
在 server2 上操作:
創建一個與 mydb 同名的空數據庫
# mysql
CREATE DATABASE mydb;
\q
# scp 192.168.1.108:/tmp/mydb.sql ?./
# mysql -uroot -p mydb /tmp/luowei.sql
5. 然后兩個服務器相互通告二進制日志的位置并啟動復制功能:
在 server1 上:
# mysql
CHANGE MASTER TO
MASTER_HOST= 192.168.1.110 ,
MASTER_USER= server2 ,
MASTER_PASSWORD= server2
mysql START SLAVE;
在 server2 上:
# mysql
CHANGE MASTER TO
MASTER_HOST= 192.168.1.108 ,
MASTER_USER= server1 ,
MASTER_PASSWORD= server1
mysql START SLAVE;
6. 查看,并驗證:
分別在兩個數據庫服務器上查看
mysql START SLAVE;
然后查看數據庫和表,你會發現內容是一樣的,這樣就是整個主主 Mysql 的架構
的配置過程。
檢查主從同步性
[root@node1 ~]# mysql #進入 mysql 命令行
mysql show master status; #顯示 (不同主機結果不同)
+——————+———-+——————-+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+——————-+——————+
| updatelog.000028 | 313361 |db1 | mysql |
+——————+———-+——————-+——————+
(同步之前如果懷疑主從數據不同步可以采取:上面冷備份遠程拷貝法或者在從服務器上命行同步方法)
在從服務器執行 MySQL 命令下:
mysql slave stop; #先停止 slave 服務
mysql CHANGE MASTER TO MASTER_LOG_FILE= updatelog.000028 ,MASTER_LOG_POS=313361;
#根據上面主服務器的 show master status 的結果,進行從服務器的二進制數據庫記錄回歸,達到同步的效果
mysql slave start; #啟動從服務器同步服務
mysql show slave status\G;
用 show slave status\G; 看一下從服務器的同步情況
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果都是 yes,那代表已經在同步
利用 mysql 的客戶端來測試,要比在命令行方便的多。
到此,關于“mysql 主主和主從的搭建方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!