掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
以下的文章主要向大家介紹的是MySQL數(shù)據(jù)庫同步的實際操作步驟以及對實現(xiàn)MySQL數(shù)據(jù)庫同步的實際應(yīng)用代碼與其在實際操作過程中值得我們大家注意的相關(guān)事項的描述,希望會給你帶來一些幫助在此方面。

措美網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
在網(wǎng)上我找了一下,大家都說的是這樣:“ MySQL從3.23.15版本以后提供數(shù)據(jù)庫復(fù)制功能。利用該功能可以實現(xiàn)兩個數(shù)據(jù)庫同步,主從模式,互相備份模式的功能。
MySQL數(shù)據(jù)庫同步復(fù)制功能的設(shè)置都在MySQL的設(shè)置文件中體現(xiàn)。MySQL的配置文件(一般是my.cnf)
在unix環(huán)境下在/etc/MySQL/my.cnf 或者在MySQL用戶的home目錄下面的my.cnf.
window環(huán)境中,如果c:根目錄下有my.cnf文件則取該配置文件。當(dāng)運行MySQL\bin\winMySQLadmin.exe工具時候,該工具會把c:根目錄下的my.cnf 命名為mycnf.bak。并在winnt目錄下創(chuàng)建my.ini。MySQL服務(wù)器啟動時候會讀該配置文件。所以可以把my.cnf中的內(nèi)容拷貝到my.ini文件中,用my.ini文件作為MySQL
服務(wù)器的配置文件。
設(shè)置方法:
設(shè)置范例環(huán)境:
操作系統(tǒng):window2000 professional
MySQL:4.0.4-beta-max-nt-log
A ip:10.10.10.22
B ip:10.10.10.53
A:設(shè)置
1.增加一個用戶最為同步的用戶帳號:
GRANT FILE ON *.* TO backup@'10.10.10.53' IDENTIFIED BY ‘1234’
2.增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:
create database backup
B:設(shè)置
1.增加一個用戶最為同步的用戶帳號:
GRANT FILE ON *.* TO backup@'10.10.10.22' IDENTIFIED BY ‘1234’
2.增加一個數(shù)據(jù)庫作為MySQL數(shù)據(jù)庫同步:
- create database backup
主從模式:A->B
A為master
修改A MySQL的my.ini文件。在MySQLd配置項中加入下面配置:
- server-id=1
- log-bin
#設(shè)置需要記錄log 可以設(shè)置log-bin=c:\MySQLbak\MySQLlog 設(shè)置日志文件的目錄,
#其中MySQLlog是日志文件的名稱,MySQL將建立不同擴展名,文件名為MySQLlog的幾個日志文件。
binlog-do-db=backup #指定需要日志的數(shù)據(jù)庫
重起數(shù)據(jù)庫服務(wù)
用show master status 命令看日志情況。
B為slave
修改B MySQL的my.ini文件。在MySQLd配置項中加入下面配置:
server-id=2
master-host=10.10.10.22
master-user=backup #MySQL數(shù)據(jù)庫同步用戶帳號
master-password=1234
master-port=3306
master-connect-retry=60 預(yù)設(shè)重試間隔60秒
replicate-do-db=backup 告訴slave只做backup數(shù)據(jù)庫的更新
重起數(shù)據(jù)庫
用show slave status看同步配置情況。
注意:由于設(shè)置了slave的配置信息,MySQL在數(shù)據(jù)庫目錄下生成master.info
所以如有要修改相關(guān)slave的配置要先刪除該文件。否則修改的配置不能生效。
雙機互備模式
如果在A加入slave設(shè)置,在B加入master設(shè)置,則可以做B->A的同步。
在A的配置文件中 MySQLd 配置項加入以下設(shè)置:
- master-host=10.10.10.53
- master-user=backup
- master-password=1234
- replicate-do-db=backup
- master-connect-retry=10
在B的配置文件中 MySQLd 配置項加入以下設(shè)置:
- log-bin=c:\MySQLlog\MySQLlog
- binlog-do-db=backup
注意:當(dāng)有錯誤產(chǎn)生時*.err日志文件。同步的線程退出,當(dāng)糾正錯誤后要讓MySQL數(shù)據(jù)庫同步機制進行工作,運行slave start
重起AB機器,則可以實現(xiàn)雙向的熱備。
測試:
向B批量插入大數(shù)據(jù)量表AA(1872000)條
A數(shù)據(jù)庫每秒鐘可以更新2500條數(shù)據(jù)?!?/p>
但是我的MySQL是5.1.30-win32的,安裝后在C:\Program Files\MySQL\MySQL Server 5.1這個文件夾里根本就沒有my.cnf,只有my.ini,有些說要用winMySQLadmin.exe壓運行這個文件后就會在c盤的根目錄下有一個mycnf.bak文件,同時在C:\WINDOWS文件夾里生成一個my.ini文件。但是我安裝了并運行了winMySQLadmin.exe之后,在c盤的根目錄下根本就沒有一個mycnf.bak文件,我在整個電腦里都沒有找到這個文件。不知道我哪里沒有做對,忘高手們指點一二。幫助后給高分。
【編輯推薦】

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流