Mysql數(shù)據(jù)庫(kù)的主從同步配置方式
注:本次配置的主從數(shù)據(jù)庫(kù)版本都為Mysql 8,主數(shù)據(jù)庫(kù)所在系統(tǒng)為Windows(Windows Server 2019),從數(shù)據(jù)庫(kù)所在系統(tǒng)為L(zhǎng)inux(CentOS Stream 8)。
一、主數(shù)據(jù)庫(kù)準(zhǔn)備
1.在主數(shù)據(jù)庫(kù)創(chuàng)建用于復(fù)制的用戶
(如果已經(jīng)存在類似用戶,可跳過(guò)此步驟)
mysql> CREATE USER 'copy'@'%' IDENTIFIED BY 'copy123456'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'copy'@'%';
2.查看主數(shù)據(jù)庫(kù)是否啟用二進(jìn)制日志
mysql> show variables like 'log_bin';
這里須保證數(shù)據(jù)庫(kù)啟用二進(jìn)制日志。
3.配置主數(shù)據(jù)庫(kù)配置文件
Windows中配置文件路徑默認(rèn)為:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
修改 server-id=(可任意設(shè)置為 [1 , )
范圍內(nèi)的值,但不能與其他數(shù)據(jù)庫(kù)相同)
添加binlog-do-db(需要同步的數(shù)據(jù)庫(kù)名)或binlog-ignore-db(不同步的數(shù)據(jù)庫(kù)名)
具體操作為:
在[mysqld]下面添加以下內(nèi)容:
server-id = 100002 #注:server-id 默認(rèn)為1,根據(jù)需要修改為指定的id binlog-do-db=需要同步的數(shù)據(jù)庫(kù)(或者binlog-ignore-db=忽略同步的數(shù)據(jù)庫(kù)) binlog-do-db=需要同步的數(shù)據(jù)庫(kù)(或者binlog-ignore-db=忽略同步的數(shù)據(jù)庫(kù)) binlog-do-db=需要同步的數(shù)據(jù)庫(kù)(或者binlog-ignore-db=忽略同步的數(shù)據(jù)庫(kù)) ............ #注:如果有多個(gè)數(shù)據(jù)庫(kù),可以書寫多行
修改后保存。
注:此處要保證my.ini的編碼為ANSI,如果編碼為Unicode等其他編碼,會(huì)導(dǎo)致數(shù)據(jù)庫(kù)重啟失?。。。。梢允褂糜浭卤?[另存為] ANSI編碼)
4.重啟MySQL服務(wù)
在任務(wù)管理器中找到
選擇重新啟動(dòng)。
二、從服務(wù)器 準(zhǔn)備
1.設(shè)置 從服務(wù)器 的server_id
SET GLOBAL server_id = 66666;
2.查看主數(shù)據(jù)庫(kù)是否啟用二進(jìn)制日志
show variables like 'log_bin';
Mysql8默認(rèn)啟用,如果未啟用,則需要將其啟用。
三、主從數(shù)據(jù)庫(kù)數(shù)據(jù)準(zhǔn)備
1.阻止主數(shù)據(jù)庫(kù)的更改
(如果能保證在數(shù)據(jù)庫(kù)配置期間不對(duì)主數(shù)據(jù)庫(kù)進(jìn)行變更,可以跳過(guò)這一步)
在數(shù)據(jù)庫(kù)上加上讀鎖定。
mysql> FLUSH TABLES WITH READ LOCK;
在所有配置完成之后,釋放鎖定(下面這條語(yǔ)句暫時(shí)不執(zhí)行,在配置完成之后再釋放)
mysql> UNLOCK TABLES;
2.使主從數(shù)據(jù)庫(kù)的數(shù)據(jù)保持一致
有很多種方法可以實(shí)現(xiàn)這一步。
(這里使用了Navicate for Mysql的“數(shù)據(jù)傳輸”功能)
3.獲取主服務(wù)器當(dāng)前的二進(jìn)制日志文件名和位置
SHOW MASTER STATUS;
四、在從服務(wù)器上進(jìn)行配置
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之前的版本使用如下語(yǔ)句: 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.啟動(dòng)
START SLAVE;
3.查看狀態(tài):
SHOW SLAVE STATUS;
可以看到Slave_IO_State為:Waiting for source to send event
同時(shí)可以看到Slave_IO_Running和Slave_SQL_Running都為Yes
4.查看數(shù)據(jù)庫(kù)同步狀態(tài),若無(wú)問(wèn)題,則配置成功。
(如果之前加了讀鎖定,不要忘了在主數(shù)據(jù)庫(kù)上釋放鎖定)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL 存儲(chǔ)過(guò)程和"Cursor"的使用方法
本文中介紹了一個(gè)MySQL的存儲(chǔ)過(guò)程,其中涉及Cursor的使用2008-12-12用MyEclipse配置DataBase Explorer(圖示)
本文介紹了,用MyEclipse配置DataBase Explorer的圖片示例。需要的朋友參考下2013-04-04深入理解sqlserver中的字符編碼、排序規(guī)則、nvarchar和varchar
本文主要介紹了深入理解sqlserver中的字符編碼、排序規(guī)則、nvarchar和varchar,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09MySQL的子查詢及相關(guān)優(yōu)化學(xué)習(xí)教程
這篇文章主要介紹了MySQL的子查詢及相關(guān)優(yōu)化學(xué)習(xí)教程,使用子查詢時(shí)需要注意其對(duì)數(shù)據(jù)庫(kù)性能的影響,需要的朋友可以參考下2015-11-11刪庫(kù)跑路?使用xtraback備份MySQL數(shù)據(jù)庫(kù)的方法
mysqldump備份方式是采用邏輯備份,最大的缺陷就是備份和恢復(fù)的速度都慢,這時(shí)候就需要一種很好用又高效的工具,xtraback 就是其中的一款,號(hào)稱免費(fèi)版的innodb hotbackup。接下來(lái)通過(guò)本文給大介紹使用xtraback備份MySQL數(shù)據(jù)庫(kù)的方法,感興趣的朋友一起看看吧2018-10-10使用Memcache緩存mysql數(shù)據(jù)庫(kù)操作的原理和緩存過(guò)程淺析
這篇文章主要介紹了使用Memcache緩存mysql數(shù)據(jù)庫(kù)操作的原理和緩存過(guò)程淺析,本文著重點(diǎn)在Memcache和MySQL數(shù)據(jù)庫(kù)的交互過(guò)程及流程分解,需要的朋友可以參考下2014-07-07mysql動(dòng)態(tài)游標(biāo)學(xué)習(xí)(mysql存儲(chǔ)過(guò)程游標(biāo))
mysql動(dòng)態(tài)游標(biāo)示例,通過(guò)準(zhǔn)備語(yǔ)句、視圖和靜態(tài)游標(biāo)實(shí)現(xiàn),大家參考使用吧2013-12-12MySQL數(shù)據(jù)庫(kù)主從復(fù)制與讀寫分離
大家好,本篇文章主要講的是MySQL數(shù)據(jù)庫(kù)主從復(fù)制與讀寫分離,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12