Mysql中的多級復(fù)制方式
Mysql的多級復(fù)制
有3臺Mysql服務(wù)器X、Y、Z,存在以下關(guān)系:
- X、Y之間存在主從復(fù)制關(guān)系,X為主服務(wù)器,Y為從服務(wù)器。
- Y、Z之間存在主從復(fù)制關(guān)系,Y為主服務(wù)器,Z為從服務(wù)器。
其中,Y既作為X的從服務(wù)器,又作為Z的主服務(wù)器。
X與Y的主從配置可以參考:
下面主要做Y和Z的同步配置:
(需要保證主從服務(wù)器版本的一致性,從服務(wù)器MySQL版本不能低于主服務(wù)器)
1.在主服務(wù)器中創(chuàng)建復(fù)制用戶
mysql> CREATE USER 'copy'@'%' IDENTIFIED BY 'copy123456'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'copy'@'%';
2.修改主服務(wù)器中的配置文件
Ubuntu中的配置文件路徑為: /etc/mysql/my.cnf Windows中的默認(rèn)配置文件路徑為: C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
以下為修改示例:
[mysqld] server-id=104538 #服務(wù)器id log_slave_updates=1 #log_slave_updates設(shè)為ON,把在主服務(wù)器那里接收到的更新,記錄到自己的二進(jìn)制日志中 binlog-ignore-db=information_schema binlog-ignore-db=mysql binlog-ignore-db=sys binlog-ignore-db=performance_schema #設(shè)置忽略同步的數(shù)據(jù)庫(這里也可以設(shè)置需要同步的數(shù)據(jù)庫名)
3.修改完成后
重新啟動主服務(wù)器Mysql服務(wù)器
這里具Ubuntu操作系統(tǒng)的例子,在命令行輸入:
service mysql restart
4.為主數(shù)據(jù)庫中的表加上讀鎖定以避免主數(shù)據(jù)庫的更改
(如果能保證在數(shù)據(jù)庫配置期間不對主數(shù)據(jù)庫進(jìn)行變更,可以跳過這一步)
在數(shù)據(jù)庫上加上讀鎖定。
mysql> FLUSH TABLES WITH READ LOCK;
在所有配置完成之后,釋放鎖定(下面這條語句暫時(shí)不執(zhí)行,在主從同步配置完成之后再釋放)
mysql> UNLOCK TABLES;
5.使主從數(shù)據(jù)庫的數(shù)據(jù)保持一致
有很多種方法可以實(shí)現(xiàn)這一步。
(這里使用了Navicate for Mysql的“數(shù)據(jù)傳輸”功能)
6.獲取主服務(wù)器當(dāng)前的二進(jìn)制日志文件名和位置
在主服務(wù)器MySQL運(yùn)行以下命令:
SHOW MASTER STATUS;
7.在從服務(wù)器上設(shè)置源配置
CHANGE REPLICATION SOURCE TO SOURCE_HOST='source_host_name', SOURCE_USER='replication_user_name', SOURCE_PASSWORD='replication_password', SOURCE_LOG_FILE='recorded_log_file_name',#上圖的File SOURCE_LOG_POS=recorded_log_position;#上圖的Position
MySQL 8.0.23之前的版本使用如下語句:
CHANGE MASTER TO MASTER_HOST='source_host_name', MASTER_USER='replication_user_name', MASTER_PASSWORD='replication_password', MASTER_LOG_FILE='recorded_log_file_name', MASTER_LOG_POS=recorded_log_position;
8.在從服務(wù)器上啟動主從同步
START SLAVE;
9.查看狀態(tài)
SHOW SLAVE STATUS; #如果Slave_IO_State為:Waiting for source to send event #且Slave_IO_Running和Slave_SQL_Running都為Yes #則代表主從同步正在正常運(yùn)行
如果出現(xiàn)異?;蝈e(cuò)誤,可以查看錯(cuò)誤信息,再對應(yīng)解決:
可參考:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
登錄mysql報(bào)錯(cuò)Can‘t connect to MySQL server&n
這篇文章主要給大家介紹了登錄mysql報(bào)錯(cuò) Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)解決方法,文中有詳細(xì)的解決步驟,需要的朋友可以參考下2023-09-09mysql修改sql_mode報(bào)錯(cuò)的解決
今天在Navicat中運(yùn)行sql語句創(chuàng)建數(shù)據(jù)表出現(xiàn)了錯(cuò)誤Err 1067。本文主要介紹了mysql修改sql_mode報(bào)錯(cuò)的解決,感興趣的可以了解一下2021-09-09MySQL數(shù)據(jù)庫刪除數(shù)據(jù)自增ID不連續(xù)的實(shí)現(xiàn)示例
本文介紹了MySQL數(shù)據(jù)庫刪除數(shù)據(jù)后自增ID不連續(xù)的問題,文中通過2種方法解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11MySQL中對于not in和minus使用的優(yōu)化
這篇文章主要介紹了MySQL中對于not in和minus使用的優(yōu)化,作者給出了實(shí)例和運(yùn)行時(shí)間對比,需要的朋友可以參考下2015-05-05MySQL數(shù)據(jù)庫高級操作實(shí)戰(zhàn)(克隆表、清空表、創(chuàng)建臨時(shí)表及約束)
多年工作中積累整理的數(shù)據(jù)庫高級操作分享給大家,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫高級操作實(shí)戰(zhàn)的相關(guān)資料,其中包括克隆表、清空表、創(chuàng)建臨時(shí)表及約束等,需要的朋友可以參考下2023-06-06