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等其他編碼,會導(dǎo)致數(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)文章
用MyEclipse配置DataBase Explorer(圖示)
本文介紹了,用MyEclipse配置DataBase Explorer的圖片示例。需要的朋友參考下2013-04-04深入理解sqlserver中的字符編碼、排序規(guī)則、nvarchar和varchar
本文主要介紹了深入理解sqlserver中的字符編碼、排序規(guī)則、nvarchar和varchar,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09MySQL的子查詢及相關(guān)優(yōu)化學(xué)習(xí)教程
這篇文章主要介紹了MySQL的子查詢及相關(guān)優(yōu)化學(xué)習(xí)教程,使用子查詢時需要注意其對數(shù)據(jù)庫性能的影響,需要的朋友可以參考下2015-11-11刪庫跑路?使用xtraback備份MySQL數(shù)據(jù)庫的方法
mysqldump備份方式是采用邏輯備份,最大的缺陷就是備份和恢復(fù)的速度都慢,這時候就需要一種很好用又高效的工具,xtraback 就是其中的一款,號稱免費版的innodb hotbackup。接下來通過本文給大介紹使用xtraback備份MySQL數(shù)據(jù)庫的方法,感興趣的朋友一起看看吧2018-10-10使用Memcache緩存mysql數(shù)據(jù)庫操作的原理和緩存過程淺析
這篇文章主要介紹了使用Memcache緩存mysql數(shù)據(jù)庫操作的原理和緩存過程淺析,本文著重點在Memcache和MySQL數(shù)據(jù)庫的交互過程及流程分解,需要的朋友可以參考下2014-07-07mysql動態(tài)游標學(xué)習(xí)(mysql存儲過程游標)
mysql動態(tài)游標示例,通過準備語句、視圖和靜態(tài)游標實現(xiàn),大家參考使用吧2013-12-12MySQL數(shù)據(jù)庫主從復(fù)制與讀寫分離
大家好,本篇文章主要講的是MySQL數(shù)據(jù)庫主從復(fù)制與讀寫分離,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12