mysql 主從服務(wù)器的簡單配置
更新時間:2009年05月08日 23:15:21 作者:
首先呢,需要有兩個mysql服務(wù)器。如果做測試的話可以在同一臺機(jī)器上裝兩個mysql服務(wù)程序,注意要兩個運(yùn)行程序的端口不能一樣。我用的是一個是默認(rèn)的3306,從服務(wù)器用的是3307端口。
首先在主服務(wù)器上添加可登陸的用戶權(quán)限:
GRANT REPLICATE SLAVE on *.* to 'username'@'host' identified by 'password'
然后設(shè)置主服務(wù)器的my.ini文件。
server-id=1 #主服務(wù)器標(biāo)識
log-bin #啟用二進(jìn)制日志
binlog-do-bin=databasename #要備份的數(shù)據(jù)庫名稱,多個可以重復(fù)該配置過程
binlog-ignore-db=databasename #不備份的數(shù)據(jù)庫名稱,多個可以重復(fù)該配置過程
從服務(wù)器的配置
server-id=2 #從服務(wù)器標(biāo)識,范圍1---2E32-1
master-host=hostname/hostip #主服務(wù)器ip或主機(jī)名稱
master-user=username #登陸主服務(wù)器的用戶名
master-password=password #登陸主服務(wù)器的密碼
master-port = portid #主服務(wù)器的運(yùn)行端口號
replicate-do-db=databasename #要同步的數(shù)據(jù)庫名稱,多個可以重復(fù)該配置過程
replicate-ignore=db=databasename #不同步的數(shù)據(jù)庫名稱,多個可以重復(fù)該配置
log-bin #從服務(wù)器啟動二進(jìn)制日志記錄
master-connect-retry = seconds #與主服務(wù)器斷開連接后,重新自動連接的時間
skip-start-slave #防止隨服務(wù)器的啟動而啟動同步程序
至此,一個簡單的主從服務(wù)器配置完成。
在master服務(wù)器端可運(yùn)行的命令:
show master status;#查看主服務(wù)器的運(yùn)行狀態(tài)
show slave hosts;#查看從服務(wù)器主機(jī)列表
補(bǔ)充:
在從服務(wù)器上使用show slave status
Slave_IO_Running,為No,則說明IO_THREAD沒有啟動,請執(zhí)行slave start [IO_THREAD]
Slave_SQL_Running為No則復(fù)制出錯,查看Last_error字段排除錯誤后執(zhí)行slave start [SQL_THREAD]
查看Slave_IO_State字段
空 //復(fù)制沒有啟動
Connecting to master//沒有連接上master
Waiting for master to send event//已經(jīng)連上
補(bǔ)充:可以使用LOAD DATA FROM MASTER語句來建立slave。但有約束條件:
數(shù)據(jù)表要全部是MyISAM表,必須有SUPER權(quán)限,master的復(fù)制用戶必須具備RELOAD和SUPER權(quán)限。
在master端執(zhí)行RESET MASTER清除已有的日志變更,
此時slave端會因?yàn)檎也坏絤aster日志無法啟動IO_THREAD,請清空data目錄下
relay-log.info,hosname-relay-bin*等文件重新啟動mysql
中繼日志文件默認(rèn)的文件為hostname-relay-bin.nnn和hostname-relay-bin.index??捎脧姆?wù)器的--
relay-log和--relay-log-index選項修改。在從服務(wù)器中還有一個relay-log.info中繼信息文件,可用
--relay-log-info-file啟動選項修改文件名。
雙機(jī)互備則是兩個mysql同時配置為master及slave
主服務(wù)器上的相關(guān)命令:
show master status
show slave hosts
show logs
show binlog events
purge logs to ''log_name''
purge logs before ''date''
reset master(老版本flush master)
set sql_log_bin=
從服務(wù)器上的相關(guān)命令:
slave start
slave stop
SLAVE STOP IO_THREAD //此線程把master段的日志寫到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此線程把寫到本地的日志應(yīng)用于數(shù)據(jù)庫
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //動態(tài)改變master信息
PURGE MASTER [before ''date''] 刪除master端已同步過的日志
GRANT REPLICATE SLAVE on *.* to 'username'@'host' identified by 'password'
然后設(shè)置主服務(wù)器的my.ini文件。
server-id=1 #主服務(wù)器標(biāo)識
log-bin #啟用二進(jìn)制日志
binlog-do-bin=databasename #要備份的數(shù)據(jù)庫名稱,多個可以重復(fù)該配置過程
binlog-ignore-db=databasename #不備份的數(shù)據(jù)庫名稱,多個可以重復(fù)該配置過程
從服務(wù)器的配置
server-id=2 #從服務(wù)器標(biāo)識,范圍1---2E32-1
master-host=hostname/hostip #主服務(wù)器ip或主機(jī)名稱
master-user=username #登陸主服務(wù)器的用戶名
master-password=password #登陸主服務(wù)器的密碼
master-port = portid #主服務(wù)器的運(yùn)行端口號
replicate-do-db=databasename #要同步的數(shù)據(jù)庫名稱,多個可以重復(fù)該配置過程
replicate-ignore=db=databasename #不同步的數(shù)據(jù)庫名稱,多個可以重復(fù)該配置
log-bin #從服務(wù)器啟動二進(jìn)制日志記錄
master-connect-retry = seconds #與主服務(wù)器斷開連接后,重新自動連接的時間
skip-start-slave #防止隨服務(wù)器的啟動而啟動同步程序
至此,一個簡單的主從服務(wù)器配置完成。
在master服務(wù)器端可運(yùn)行的命令:
show master status;#查看主服務(wù)器的運(yùn)行狀態(tài)
show slave hosts;#查看從服務(wù)器主機(jī)列表
補(bǔ)充:
在從服務(wù)器上使用show slave status
Slave_IO_Running,為No,則說明IO_THREAD沒有啟動,請執(zhí)行slave start [IO_THREAD]
Slave_SQL_Running為No則復(fù)制出錯,查看Last_error字段排除錯誤后執(zhí)行slave start [SQL_THREAD]
查看Slave_IO_State字段
空 //復(fù)制沒有啟動
Connecting to master//沒有連接上master
Waiting for master to send event//已經(jīng)連上
補(bǔ)充:可以使用LOAD DATA FROM MASTER語句來建立slave。但有約束條件:
數(shù)據(jù)表要全部是MyISAM表,必須有SUPER權(quán)限,master的復(fù)制用戶必須具備RELOAD和SUPER權(quán)限。
在master端執(zhí)行RESET MASTER清除已有的日志變更,
此時slave端會因?yàn)檎也坏絤aster日志無法啟動IO_THREAD,請清空data目錄下
relay-log.info,hosname-relay-bin*等文件重新啟動mysql
中繼日志文件默認(rèn)的文件為hostname-relay-bin.nnn和hostname-relay-bin.index??捎脧姆?wù)器的--
relay-log和--relay-log-index選項修改。在從服務(wù)器中還有一個relay-log.info中繼信息文件,可用
--relay-log-info-file啟動選項修改文件名。
雙機(jī)互備則是兩個mysql同時配置為master及slave
主服務(wù)器上的相關(guān)命令:
show master status
show slave hosts
show logs
show binlog events
purge logs to ''log_name''
purge logs before ''date''
reset master(老版本flush master)
set sql_log_bin=
從服務(wù)器上的相關(guān)命令:
slave start
slave stop
SLAVE STOP IO_THREAD //此線程把master段的日志寫到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此線程把寫到本地的日志應(yīng)用于數(shù)據(jù)庫
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //動態(tài)改變master信息
PURGE MASTER [before ''date''] 刪除master端已同步過的日志
相關(guān)文章
MySQL?Binlog日志的記錄模式寫入機(jī)制文件操作詳解
這篇文章主要介紹了MySQL?Binlog日志的記錄模式寫入機(jī)制文件操作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07MySQL下將一個表的數(shù)據(jù)插入到另外一個表的實(shí)現(xiàn)語句
開發(fā)中,我們經(jīng)常需要將一個表的數(shù)據(jù)插入到另外一個表,有時還需要指定導(dǎo)入字段,雖然這個實(shí)現(xiàn)起來非常簡單,但是還是會困擾許多新手,因此專門發(fā)一篇文章備查。2009-09-09mysql中GROUP_CONCAT的使用方法實(shí)例分析
這篇文章主要介紹了mysql中GROUP_CONCAT的使用方法,結(jié)合實(shí)例形式分析了MySQL中GROUP_CONCAT合并查詢結(jié)果的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02MySQL實(shí)現(xiàn)配置主從復(fù)制項目實(shí)踐
本文主要介紹了MySQL?配置主從復(fù)制實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03Mysql保持現(xiàn)有內(nèi)容在后面增加內(nèi)容的sql語句
這篇文章主要介紹了Mysql保持現(xiàn)有內(nèi)容在后面增加內(nèi)容的sql語句,需要的朋友可以參考下2017-05-05