十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本文主要給大家簡單講講MySQL雙主master-master配置的詳細方法,相關專業(yè)術語大家可以上網(wǎng)查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望MySQL雙主master-master配置的詳細方法這篇文章可以給大家?guī)硪恍嶋H幫助。
專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)鄂州免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
環(huán)境:
主機名 主機IP 操作系統(tǒng)
mysqlA 172.18.252.221 CentOS 6.5 2.6.32-431.el6.x86_64 mysqlB 172.18.252.222
MySQL版本 mysql-community-server-5.7.5-0.6.m15.el6.x86_64
本文做一點補充說明:如果mysqlA已經(jīng)運行了一段時間,要添加一臺新的mysqlB, 與mysqlA實現(xiàn)主主復制,就要先復制mysqlA上的數(shù)據(jù)導入到mysqlB, 使數(shù)據(jù)保持一致;記錄mysqlA上binlog的文件名和Position,在mysqlB上執(zhí)行CHANGE MASTER TO ...;再記錄mysqlB上的binlog的文件名和Position,在mysqlA上執(zhí)行CHANGE MASTER.(導入到B的數(shù)據(jù)應該是使用mysqlA的全量備份+binlog) 下面有兩種實現(xiàn)方法: 方法一、 1)對mysqlA數(shù)據(jù)庫鎖表操作,不讓數(shù)據(jù)再進行寫入動作 > flush tables with read lock; > 不要退出連接,另開一個終端執(zhí)行備份操作. 2)備份mysqlA的數(shù)據(jù)庫 mysqldump --uroot -p --single-transaction --opt --events --triggers --routines --flush-logs --master-data=2 --databases db1 db2 >db.sql --flush-logs :選項用以生成新的二進制日志文件(滾動二進制文件使其起始位置完全) --mater-data :選項值等于2 ,備份后的sql文件里CHANGE MASTER語句被注釋。 --single-transaction :InnoDB表在備份時,通常啟用選項 --single-transaction來保證備份的一致性,實際上它的工作原理是設定本次會話的隔離級別為: REPEATABLE READ,以確保本次會話(mysqldump)時,不會看到其他會話提交了的數(shù)據(jù)。 3)看mysqlA數(shù)據(jù)庫的狀態(tài),記錄File和Position項的值后解鎖; show master status; unlock tables; 4)在mysqlB上導入mysqlA的數(shù)據(jù): > mysql -uroot -p 'repl' < db.sql 5)生成CHANGE MASTER 語句,然后在mysqlB上執(zhí)行 > STOP SLAVE; > CHANGE MASTER TO MASTER_HOST='172.18.252.221' , MASTER_USER='repl_user',MASTER_PASSWORD='repl' , MASTER_LOG_FIEL='mysql-bin.000002', MASTER_LOG_POS='120'; > START SLAVE; > SHOW SLAVE STATUS\G Slave_IO_Running和Slave_SQL_Running的狀態(tài),如果都為Yes,從庫mysqlB配置成功。 6)記錄mysqlB的binlogFile和Position項的值,生成CHANGE MASTER語句,然后在mysqlA上執(zhí)行如上操作(先stop slave;...),最后啟動slave.
方法二、
1)備份A的數(shù)據(jù)庫(不用鎖表)
mysqldump -uroot -p --single-transaction --opt --flush-logs --events --triggers --routines --master-data=2 --databases db1 db2 > db.sql
2)使用grep -i "change master " db.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002' , MASTER_LOG_POS=120;
OK,結果所示二進制日志文件為mysql-bin.000002,位置為120
然后執(zhí)行方法一的4)、5)、6)即可
MySQL雙主master-master配置的詳細方法就先給大家講到這里,對于其它相關問題大家想要了解的可以持續(xù)關注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。