隨著技術(shù)的發(fā)展,在實際的生產(chǎn)環(huán)境中,由單臺MySQL數(shù)據(jù)庫服務(wù)器不能滿足實際的需求。此時數(shù)據(jù)庫集群就很好的解決了這個問題了。采用MySQL分布式集群,能夠搭建一個高并發(fā)、負(fù)載均衡的集群服務(wù)器。在此之前我們必須要保證每臺MySQL服務(wù)器里的數(shù)據(jù)同步。數(shù)據(jù)同步我們可以通過MySQL內(nèi)部配置就可以輕松完成,主要有主從復(fù)制和主主復(fù)制。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、鎮(zhèn)原網(wǎng)站維護、網(wǎng)站推廣。
MySQL5.6開始主從復(fù)制有兩種方式:基于日志(binlog);基于GTID(全局事務(wù)標(biāo)示符)。此文章是基于日志方式的配置步驟。
1.在主從數(shù)據(jù)庫配置文件,一般Linux中的MySQL配置文件都在/etc/my.cnf(windows中的配置文件為mysql.ini)。
這里以同步test庫為例子,配置如下:
[mysqld]
#數(shù)據(jù)庫ID號, 為1時表示為Master,其中master_id必須為1到232–1之間的一個正整數(shù)值,主從server-id不能一樣;
server-id=1
#啟用二進制日志;
log-bin=mysql-bin
sync-binlog=1
#需要同步的二進制數(shù)據(jù)庫名;
binlog-do-db=test
保存文件,重啟MYSQL。
2.構(gòu)建主從復(fù)制,
第一步:在192.168.1.1(主)中創(chuàng)建一個192.168.1.2(從)可以登錄的MySQL用戶,這里以mysql119用戶作為例子。
mysql>CREATE USER 'mysql119'@'@' IDENTIFIED BY '123456';
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘mysql119’@’192.168.1.%’ IDENTIFIED BY ‘123456’;
mysql>FLUSH PRIVILEGES;
第二步:
查看192.168.1.1 主MySQL服務(wù)器二進制文件名與位置。
mysql>SHOW MASTER STATUS;第三步:告知從庫二進制文件名與位置,在192.168.1.2中執(zhí)行:
mysql>CHANGE MASTER TO
>MASTER_HOST=’192.168.95.11’,
>MASTER_USER=’mysql119’,
>MASTER_PASSWORD=’123456’,
>MASTER_LOG_FILE=’mysql-bin.000007’,
>MASTER_LOG_POS=525;
到這里就完成主從復(fù)制配置。
3.測試主重復(fù)制,在192.168.1.2中
mysql>SLAVE START; #開啟復(fù)制
mysql>SHOW SLAVE STATUS\G #查看主從復(fù)制是否配置成功
如圖:
當(dāng)看到Slave_IO_Running: YES、Slave_SQL_Running: YES才表明狀態(tài)正常。
實際測試:
- 查看 主test庫的test_table,
- 然后往 主test庫插入一條數(shù)據(jù),
- 觀察 從test庫的數(shù)據(jù),如圖:
注意:
1.主重mysql版本最好保持一致,避免因版本差異出現(xiàn)不可預(yù)知的問題。
2.出現(xiàn)從數(shù)據(jù)庫連接不上主數(shù)據(jù)庫,查看是否授權(quán)問題。
3.在配置主從復(fù)制的時候,備份master數(shù)據(jù)前先鎖表,保證數(shù)據(jù)一致性。
如有問題,歡迎指正!
參考文章:
https://www.cnblogs.com/phpstudy2015-6/p/6485819.html