Mysql雙主配置的詳細步驟
前言
特點:在雙主配置中,兩臺mysql互為主從節(jié)點。節(jié)點A是節(jié)點B的master,同時節(jié)點B也是節(jié)點A的master。
安裝mysql步驟略過
一、mysql配置文件
(1)節(jié)點A配置
# 設置server-id,兩節(jié)點必須不一樣 server-id = 100 # 開啟bin_log,模式為ROW,允許最大日志為1G log_bin = mysql-bin binlog_format = ROW max_binlog_size = 1024M # mysql5.7的版本不需要配置log-slave-updates=1 # log-slave-updates = 1 # 實現(xiàn)數據庫宕機恢復后,自動同步缺少的數據 relay_log = mysql-relay-bin # 設置自增ID初始值為2,每次自增量為2。即都是偶數2,4,6,8,... auto_increment_offset = 2 auto_increment_increment = 2 # 開啟gtid gtid_mode = ON enforce_gtid_consistency = 1 # 忽略不需要同步的schema replicate-ignore-db = mysql replicate-ignore-db = information_schema replicate-ignore-db = performance_schema replicate-ignore-db = sys
(2)節(jié)點B配置
只列出了與節(jié)點A不同的配置
# 設置server-id,兩節(jié)點必須不一樣 server-id = 200 # 設置自增ID初始值為1,每次自增量為2。即都是奇數1,3,5,7,... auto_increment_offset = 1 auto_increment_increment = 2
二、配置節(jié)點A為節(jié)點B的master(主從模式)
節(jié)點A為master,節(jié)點B為slave。
(1)登錄節(jié)點A,創(chuàng)建slave(節(jié)點B)使用的賬號。
# 在節(jié)點A上創(chuàng)建賬號repl_user,允許從任意IP訪問,密碼為slave@100, grant replication slave on *.* to 'repl_user'@'%' identified by 'slave@100'; flush privileges;
(2)查看節(jié)點A的master信息
如下圖所屬,節(jié)點A的bin_log日志為mysql-bin.000001,位置是154
# 清空master信息。初次配置可以使用,若已運行了同步,切記不要使用! reset master; # 查看master信息 show master status; +------------------+----------+--------------+------------------+---------------------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+---------------------------------------------+ | mysql-bin.000001 | 154 | | | c2cf218e-2317-11ec-a36f-5cf9dd4fd6a8:1-5 | +------------------+----------+--------------+------------------+---------------------------------------------+
(3)登錄節(jié)點B,設置節(jié)點B的master為節(jié)點A
# 停止節(jié)點B上的slave
stop slave;
# 將節(jié)點B的master設為節(jié)點A,以下的配置信息均表示節(jié)點A
# MASTER_LOG_FILE和MASTER_LOG_POS,是在第(2)步中查看節(jié)點A的master信息
CHANGE MASTER TO
MASTER_HOST='127.0.0.1',
MASTER_PORT=3307,
MASTER_USER='repl_user',
MASTER_PASSWORD='slave@100',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
# 開啟節(jié)點B上的slave
start slave;
(4)確認節(jié)點B的slave是否運行成功。當返回的結果中,Slave_IO_Running和Slave_SQL_Running都為YES時,表示成功。如果為NO或Connecting時,請在mysql的data目錄中查看.err結尾的日志文件,找出[ERROR]級別的日志查看。初次配置時,一般都是my.ini配置問題,或同步賬號創(chuàng)建問題導致的。
# 在節(jié)點B中查看slave狀態(tài)
show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: repl_user
Master_Port: 3307
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 2207
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 1143
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
......
(5)若slave配置出現(xiàn)異常,可使用以下語句重置
reset slave all;
三、完成雙主配置
此時,已成功配置了節(jié)點A與節(jié)點B的主從模式,即節(jié)點A是節(jié)點B的master。接下來重復步驟三的操作,但是節(jié)點A、B的操作要顛倒過來,即在節(jié)點B上創(chuàng)建同步賬號,查看master信息,在節(jié)點A上設置節(jié)點B為master。配置完成后,同樣查看節(jié)點A的slave狀態(tài),Slave_IO_Running和Slave_SQL_Running是否都為YES。
四、測試
在節(jié)點A添加、刪除schema或表或數據,在節(jié)點B中查看是否有正確同步。
測試自增主鍵,分別在節(jié)點A、B上添加自增主鍵的數據,與配置文件是否對應。一個為奇數,一個為偶數。增加或刪除數據,主鍵是否會出現(xiàn)沖突的情況。
五、控制同步的庫或表
通過修改my.ini實現(xiàn)
(1)在master端控制
binlog-do-db binlog日志記錄的數據庫(多數據庫用,隔開)
binlog-ignore-db binlog日志中忽略數據庫(多數據庫用,隔開)
只有在binlog中記錄的表,才能同步給從庫
# binlog中記錄這兩個表 binlog-do-db=db_1,db_2 # binlog中不記錄這兩個表 binlog-ignore-db=db_3,db_4
(2)在slave端控制
replicate-do-db 設定需要復制的數據庫
replicate-ignore-db 設定需要忽略的復制數據庫
replicate-do-table 設定需要復制的表
replicate-ignore-table 設定需要忽略的復制表
replicate-wild-do-table 同replication-do-table功能一樣,可以通配符
replicate-wild-ignore-table 同replication-ignore-table功能一樣,可以加通配符
注:忽略的配置里,在從庫的relaylog中仍有信息,只是沒有執(zhí)行同步。
# 執(zhí)行同步的庫 replicate-do-db=db_1 replicate-do-db=db_2 # 忽略同步的庫 replicate-ignore-db=db_3 # 執(zhí)行同步的表 replicate-do-table=db_1.table_a replicate-do-table=db_2.table_b # 忽略同步的表 replicate-ignore-table=db_2.table_c # 只復制哪個庫的哪個表 replicate-wild-do-table=db_4.% # 忽略哪個庫的哪個表 replicate-wild-ignore-table=mysql.%
第五部分引用自CSDN博主「Mr. Sun_」的原創(chuàng)文章
原文鏈接:http://m.fzitv.net/article/252656.htm
六、一個賬號多個IP
當一臺mysql作為主節(jié)點,N臺作為從節(jié)點時,如果每個從節(jié)點都添加一個賬號會非常繁瑣。此時可以在主節(jié)點中,創(chuàng)建一個賬號,給此賬號設置多個IP,從而減少添加的賬號個數。
具體做法是,將創(chuàng)建賬號的語句執(zhí)行多次,每次的IP不同即可。
# 創(chuàng)建一個賬號名,為此賬號設置多個ip grant replication slave on *.* to 'repl_user'@'192.168.5.10' identified by 'slave@100'; grant replication slave on *.* to 'repl_user'@'192.168.5.20' identified by 'slave@100'; FLUSH PRIVILEGES
第六部分引用自CSDN博主「rucypli」的回答
總結
到此這篇關于Mysql雙主配置的文章就介紹到這了,更多相關Mysql雙主配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SQL中row_number()?over(partition?by)的用法說明
這篇文章主要介紹了SQL中row_number()?over(partition?by)的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
解決Mysql 8.0.17 winx64版本安裝過程中遇到的問題
這篇文章主要介紹了Mysql 8.0.17 winx64版本安裝過程中遇到的問題 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08

