隨著訪問量的增加,對于一些比較耗時的數(shù)據(jù)庫讀取操作,一般采用將寫入與讀取操作分開來緩解數(shù)據(jù)庫的壓力,數(shù)據(jù)庫引擎一般采用Master/Slave架構(gòu)。實現(xiàn)MySQL服務(wù)器的主從配置,可以實現(xiàn)讀寫分離,另外在主數(shù)據(jù)庫崩潰后可以從備用數(shù)據(jù)庫中恢復(fù)數(shù)據(jù)以不至于網(wǎng)站中斷訪問。下面簡單說下mysql主從服務(wù)器配置的過程。
成都創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元汨羅做網(wǎng)站,已為上家服務(wù),為汨羅各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
首先需要在同一個局域網(wǎng)內(nèi)的兩臺機器(當(dāng)然也可以用一臺機器虛擬兩臺機器出來),都安裝上mysql服務(wù)。
主機A: 192.168.1.100
從機B: 192.168.1.101
可以有多臺從機。
1、先登錄主機 A,執(zhí)行如下命令賦予從機權(quán)限,如果有多臺叢機,就執(zhí)行多次:
mysql>GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.1.101' IDENTIFIED BY '123456';
2、 打開主機A的my.cnf,輸入如下配置參數(shù):
server-id = 1 #主機標(biāo)示,整數(shù) log_bin = /var/log/mysql/mysql-bin.log #確保此文件可寫 read-only =0 #主機,讀寫都可以 binlog-do-db =test #需要備份數(shù)據(jù),多個寫多行 binlog-ignore-db =mysql #不需要備份的數(shù)據(jù)庫,多個寫多行
3、打開從機B的my.cnf,輸入如下配置參數(shù):
server-id = 2 log_bin = /var/log/mysql/mysql-bin.log master-host =192.168.1.100 master-user =backup master-pass =123456 master-port =3306 master-connect-retry=60 #如果從服務(wù)器發(fā)現(xiàn)主服務(wù)器斷掉,重新連接的時間差(秒) replicate-do-db =test #只復(fù)制某個庫 replicate-ignore-db=mysql #不復(fù)制某個庫
4、同步數(shù)據(jù)庫
進(jìn)過以上的配置,分別重啟主機A和從機B,即可自動實現(xiàn)同步。
5、驗證
在主機A中,mysql>show master status\G;
能看到大致這些內(nèi)容
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
在從機B中,mysql>show slave status\G;
顯示內(nèi)容如下圖所示:
可以看到Slave_IO_State項為Waiting for master to send event且紅圈中兩項皆為Yes,那么基本上可以確定是配置成功了
另外可以在主機A中,做一些INSERT
, UPDATE
, DELETE
操作,看看主機B中,是否已經(jīng)被修改。
常見錯誤
1、master發(fā)生故障,經(jīng)修復(fù)后啟動后,slave無法與master同步
報錯:Got fatal error 1236 from master when reading data from binary log
原因:master重啟后,mysql的binlog會重新生成,相應(yīng)的記錄位置會改變
解決方法:
-master:
mysql > flush logs; mysql > show master status;
記錄下File和Position值
-slave:
mysql > stop slave; mysql > CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000049',MASTER_LOG_POS=1359; mysql > start slave; mysql > show slave status\G;
2、slave發(fā)生故障,設(shè)置正確,但是無法初始化
報錯:ERROR 1201 (HY000): Could not initialize master
解決方法:
-master:
mysql > flush logs; mysql > show master status;
記錄下File和Position值
-slave:
mysql > reset slave; mysql > change master to master_host='192.168.10.100',master_user='test',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=106; mysql > start slave; mysql > show slave status\G;
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
當(dāng)前標(biāo)題:Mysql主從數(shù)據(jù)庫(Master/Slave)同步配置與常見錯誤
標(biāo)題路徑:http://jinyejixie.com/article36/pdchpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站改版、虛擬主機、商城網(wǎng)站、品牌網(wǎng)站設(shè)計、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)