MySQL數(shù)據(jù)庫處于主流操作系統(tǒng)下的同步實際操作流程
我們大家都知道當(dāng)MySQL數(shù)據(jù)庫的相關(guān)數(shù)據(jù)量讀寫較為頻繁的時候,我們就主要考慮把MySQL數(shù)據(jù)庫的實際讀寫分開,用這種方法來提高數(shù)據(jù)庫的使用效率,(當(dāng)然還有其他用處比如,備份數(shù)據(jù)),這個時候我們就要用到MySQL的一個功能,數(shù)據(jù)庫同步。
當(dāng)數(shù)據(jù)庫的數(shù)據(jù)量讀寫頻繁的時候,我們就要考慮把MySQL數(shù)據(jù)庫的讀寫分開,以提高數(shù)據(jù)庫的使用效率,(當(dāng)然還有其他用處比如,備份數(shù)據(jù)),這個時候我們就要用到MySQL的一個功能,數(shù)據(jù)庫同步。下面就具體講一下實現(xiàn)方法
一、系統(tǒng)環(huán)境
主數(shù)據(jù)庫(master):
系統(tǒng):Windows
數(shù)據(jù)庫:MySQL 5.0.51
IP:192.168.1.156
從數(shù)據(jù)庫(slave):
系統(tǒng):Linux
MySQL數(shù)據(jù)庫:MySQL 5.0.67
IP:192.168.1.154
二、配置參數(shù):
發(fā)現(xiàn)網(wǎng)上說,兩個數(shù)據(jù)庫的配置必須一致,還把兩個配置文件對拷??雌饋硗τ械览?,因為怕部分功能不一致,也有可能導(dǎo)致同步錯誤。但是我的兩個MySQL的所在系統(tǒng)都不一樣,所以就按照默認的安裝配置了。
數(shù)據(jù)庫準(zhǔn)備:
要同步的數(shù)據(jù)庫叫 account
那就必須把主服務(wù)器上的account和數(shù)據(jù)完整的導(dǎo)一份 到slave服務(wù)器上
且在主服務(wù)器上開一個帳戶,允許從服務(wù)器訪問。
主MySQL數(shù)據(jù)庫(master)配置:
修改MySQL 的配置文件my.cnf,
找到 server-id 這一行,更改如下
server-id = 1
且增加兩行必要信息:
log-bin = d:/log-bin.log #二進制變更日值的存放位置
binlog-do-db = account #要同步的數(shù)據(jù)庫
解釋下:Slave上MySQL的Replication工作有兩個線程,I/O thread和SQL thread,I/O 的作用是從master 3306端口上把它的binlog取過來(master在被修改了任何內(nèi)容之后,就會把修改了什么寫到自己的binlog等待slave更新),然后寫到本地的relay-log,而SQL thread則是去讀本地的relay-log,再把它轉(zhuǎn)換成本MySQL所能理解的東西,于是同步就這樣一步一步的完成.
master數(shù)據(jù)庫的修改僅此一步就OK了
從數(shù)據(jù)庫(slave)配置:
修改 MySQL 下的my.cnf
找到 server-id 這一行,更改如下
server-id = 2
從MySQL數(shù)據(jù)庫
- master-host = 192.168.1.156
- master-user = lzy
- master-password = lzy
- master-port = 3306
- replicate-do-db = account
要同步的數(shù)據(jù)庫
最后,把兩個MySQL都重啟動一下。
1、看看剛才設(shè)置的日志路徑下有沒有日志生成。
2、在156上添加一條數(shù)據(jù),看看從MySQL數(shù)據(jù)庫有沒增加。如果沒有,看看slave數(shù)據(jù)庫的錯誤日志,根據(jù)錯誤信息具體調(diào)試下。
配置好同步后,我發(fā)覺log-bin的日志位置不好,想換一個地方,于是改到其他盤去了。重啟MySQL后發(fā)現(xiàn)同步不能用了。超級郁悶。于是去看了下MySQL的錯誤日志,
- “count not find first log file name in binary log in…”
找了半天沒找到原因,忽然發(fā)現(xiàn)錯誤日志的同目錄下有個master.info文件,應(yīng)該是記錄從主服務(wù)器取數(shù)據(jù)的記錄吧。打開看了看是的
- 14
- log-bin.000003
- 337
- 192.168.1.156
- lzy
- lzy
- 3306
- 60
- 0
我把這個文件刪除了,重啟動MySQL。OK了數(shù)據(jù)同步過來了。
【編輯推薦】