共計 2494 個字符,預(yù)計需要花費 7 分鐘才能閱讀完成。
這篇文章主要講解了“MySQL5.5 數(shù)據(jù)庫的主從復(fù)制用法”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MySQL5.5 數(shù)據(jù)庫的主從復(fù)制用法”吧!
MySQL 5.5 的主從復(fù)制
今天參照網(wǎng)上的資料進(jìn)行數(shù)據(jù)庫的主從復(fù)制研究,本來網(wǎng)上的資料已經(jīng)很詳細(xì),但是我在實踐中還是遇到了很多問題,下面就根據(jù)網(wǎng)上的資料以及我遇到的問題進(jìn)行一個總結(jié)。
系統(tǒng)環(huán)境:Ubuntu12.04
軟件版本:mysql-server-5.5
主機(jī) IP:192.168.0.200
從機(jī) IP:192.168.0.201
操作:
1、主機(jī)操作:
1)、編輯 mysql 配置文件 my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
注:網(wǎng)上還有一些其他的配置,但是為了偷懶只配置了這兩個重要的,當(dāng)然這兩個也是必須的。
2)、用 root 登陸 mysql 執(zhí)行下面的代碼
// 建立一個用戶 dean 密碼 123456,并賦予 replication slave 權(quán)限:
mysql grant replication slave on *.* to dean @ 192.189.0.201 identified by 123456; www.2cto.com
// 讓權(quán)限立即生效
mysql flush privileges;
// 查詢二進(jìn)制文件的文件名和狀態(tài)(后面要用)
mysql show master status \G
File:mysql-bin.000006
Position:107
Binlog_Do_DB:
Binlog_Ignore_DB:
2、從機(jī)操作:
1)、編輯 myslq 配置文件 my.cnf:
[mysqld]
server-id=2 // 只要和主機(jī)不同即可
2)、登陸 mysql,輸入以下命令:
a)、mysql change master to master_host= 192.168.0.200 ,master_user= dean , \
master_password= 123456 ,master_log_file= mysql-bin.000006 ,
master_log_pos=107;
b)、mysql start slave;
c)、mysql show slave status \G
如果出現(xiàn):Slave_IO_Running:Yes
Slave_SQL_Running:Yes
那么說明沒有問題了,就可以在主機(jī)上面建庫建表寫測試數(shù)據(jù),然后在從機(jī)上查詢看有沒有數(shù)據(jù)。一般是沒有問題了。
但是如果是出現(xiàn):
Slave_IO_Running:Connecting
Slave_SQL_Running:Yes
那么就表示主從服務(wù)有問題了,我也就是遇到這個問題下面是我的解決方案:
1)、在從機(jī)上直接遠(yuǎn)程登陸主機(jī) mysql 服務(wù)器:
#mysql -udean -h 192.168.0.200 -p123456
如果被拒絕那么就需要檢查主機(jī)的用戶 dean 的權(quán)限、防火墻等設(shè)置是否正確。(我的被拒絕了)
2)、檢查權(quán)限。
用 root 登入 mysql 并選擇 mysql 庫
mysql use mysql;
查詢用戶的訪問 www.2cto.com
mysql select host,user from user;
從查詢數(shù)據(jù)看沒有問題,有 dean 用戶 接受 192.168.0.201 的訪問
3)、防火墻設(shè)置
將端口為 3306 的訪問設(shè)為允許
#sudo ufw allow 3306
將 ip 為 192.168.0 .201 的訪問設(shè)為允許
#sudo ufw allow 192.168.0.201
查看狀態(tài)
# sudo ufw status
設(shè)置完后還是從機(jī)還是不能直接遠(yuǎn)程訪問主機(jī)
4)、查看端口監(jiān)聽
#netstat -anpy|grep 3306
發(fā)現(xiàn)當(dāng)前的端口 3306 只在 127.0.0.1 監(jiān)聽,找到問題所在。修改 mysql 配置文件 my.cnf 將里面的 bind-address=127.0.0.1 注釋調(diào),重新察看端口監(jiān)聽發(fā)現(xiàn)監(jiān)聽是 0.0.0.0:3306,好了測試一下果真可以進(jìn)行遠(yuǎn)程訪問。
重新進(jìn)行主機(jī)從機(jī)的操作,但是發(fā)現(xiàn)在從機(jī)中不能進(jìn)行第 2 步 a 操作,執(zhí)行下面命令
mysql stop slave;// 關(guān)閉 slave
mysql reset slave;// 重置 slave
繼續(xù)執(zhí)行 a 操作并往下繼續(xù)操作。
最終完成了 Mysql 數(shù)據(jù)庫的主從復(fù)制。
另:根據(jù)網(wǎng)上資料顯示,如果主機(jī)在搭建主從復(fù)制前已經(jīng)有數(shù)據(jù)需要先在主機(jī)上加鎖:
mysql flush tables with read lock;
然后打包數(shù)據(jù)目錄并拷貝到從機(jī)上,然后解鎖。
感謝各位的閱讀,以上就是“MySQL5.5 數(shù)據(jù)庫的主從復(fù)制用法”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對 MySQL5.5 數(shù)據(jù)庫的主從復(fù)制用法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!