Mysql數(shù)據(jù)庫的主從同步配置方式
注:本次配置的主從數(shù)據(jù)庫版本都為Mysql 8,主數(shù)據(jù)庫所在系統(tǒng)為Windows(Windows Server 2019),從數(shù)據(jù)庫所在系統(tǒng)為Linux(CentOS Stream 8)。
一、主數(shù)據(jù)庫準備
1.在主數(shù)據(jù)庫創(chuàng)建用于復(fù)制的用戶
(如果已經(jīng)存在類似用戶,可跳過此步驟)
mysql> CREATE USER 'copy'@'%' IDENTIFIED BY 'copy123456'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'copy'@'%';
2.查看主數(shù)據(jù)庫是否啟用二進制日志
mysql> show variables like 'log_bin';

這里須保證數(shù)據(jù)庫啟用二進制日志。
3.配置主數(shù)據(jù)庫配置文件
Windows中配置文件路徑默認為:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
修改 server-id=(可任意設(shè)置為 [1 ,
)
范圍內(nèi)的值,但不能與其他數(shù)據(jù)庫相同)
添加binlog-do-db(需要同步的數(shù)據(jù)庫名)或binlog-ignore-db(不同步的數(shù)據(jù)庫名)
具體操作為:
在[mysqld]下面添加以下內(nèi)容:
server-id = 100002 #注:server-id 默認為1,根據(jù)需要修改為指定的id binlog-do-db=需要同步的數(shù)據(jù)庫(或者binlog-ignore-db=忽略同步的數(shù)據(jù)庫) binlog-do-db=需要同步的數(shù)據(jù)庫(或者binlog-ignore-db=忽略同步的數(shù)據(jù)庫) binlog-do-db=需要同步的數(shù)據(jù)庫(或者binlog-ignore-db=忽略同步的數(shù)據(jù)庫) ............ #注:如果有多個數(shù)據(jù)庫,可以書寫多行
修改后保存。
注:此處要保證my.ini的編碼為ANSI,如果編碼為Unicode等其他編碼,會導致數(shù)據(jù)庫重啟失敗?。。。梢允褂糜浭卤?[另存為] ANSI編碼)


4.重啟MySQL服務(wù)
在任務(wù)管理器中找到

選擇重新啟動。
二、從服務(wù)器 準備
1.設(shè)置 從服務(wù)器 的server_id
SET GLOBAL server_id = 66666;

2.查看主數(shù)據(jù)庫是否啟用二進制日志
show variables like 'log_bin';

Mysql8默認啟用,如果未啟用,則需要將其啟用。
三、主從數(shù)據(jù)庫數(shù)據(jù)準備
1.阻止主數(shù)據(jù)庫的更改
(如果能保證在數(shù)據(jù)庫配置期間不對主數(shù)據(jù)庫進行變更,可以跳過這一步)
在數(shù)據(jù)庫上加上讀鎖定。
mysql> FLUSH TABLES WITH READ LOCK;
在所有配置完成之后,釋放鎖定(下面這條語句暫時不執(zhí)行,在配置完成之后再釋放)
mysql> UNLOCK TABLES;
2.使主從數(shù)據(jù)庫的數(shù)據(jù)保持一致
有很多種方法可以實現(xiàn)這一步。
(這里使用了Navicate for Mysql的“數(shù)據(jù)傳輸”功能)

3.獲取主服務(wù)器當前的二進制日志文件名和位置
SHOW MASTER STATUS;

四、在從服務(wù)器上進行配置
1.在從服務(wù)器上設(shè)置源配置
mysql> 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',
-> SOURCE_LOG_POS=recorded_log_position;
MySQL 8.0.23之前的版本使用如下語句:
mysql> 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;2.啟動
START SLAVE;
3.查看狀態(tài):
SHOW SLAVE STATUS;
可以看到Slave_IO_State為:Waiting for source to send event

同時可以看到Slave_IO_Running和Slave_SQL_Running都為Yes

4.查看數(shù)據(jù)庫同步狀態(tài),若無問題,則配置成功。
(如果之前加了讀鎖定,不要忘了在主數(shù)據(jù)庫上釋放鎖定)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql數(shù)據(jù)庫備份命令分享(mysql壓縮數(shù)據(jù)庫備份)
這篇文章主要介紹了mysql數(shù)據(jù)庫備份常用語句,包括數(shù)據(jù)庫壓縮備份、備份多個MySQL數(shù)據(jù)庫、備份多個MySQL數(shù)據(jù)庫、將數(shù)據(jù)庫轉(zhuǎn)移到新服務(wù)器等語句2014-01-01
MySQL數(shù)據(jù)庫備份恢復(fù)實現(xiàn)代碼
這篇文章主要介紹了MySQL數(shù)據(jù)庫備份恢復(fù)實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
Mysql主從復(fù)制(master-slave)實際操作案例
這篇文章主要介紹了Mysql主從復(fù)制(master-slave)實際操作案例,同時介紹了Mysql grant 用戶授權(quán)的相關(guān)內(nèi)容,需要的朋友可以參考下2014-06-06

