Spring Cloud 使用MySQL主從同步實現讀寫分離,當主數據庫寫操作時,從數據庫會實時讀取并執行二進制日志中的操作,保證與主數據庫數據的一致性。查看binlog信息可以查看二進制日志文件的文件名和偏移量...
Spring Cloud 微服務系列文章,點擊上方合集↑
1. 開頭
在生產環境中,為了應對大量的讀寫請求并減輕數據庫的負載壓力,常常會使用MySQL主從同步來實現讀寫分離的架構。通過這種架構,主數據庫負責處理寫操作,而從數據庫則專注于處理讀操作,達到了在提高性能的同時保證了數據的高可用性。
主從同步的實現原理主要依賴于MySQL的二進制日志binlog功能。當在主數據庫上進行寫操作時,MySQL會將這些操作記錄下來并保存為二進制文件。從數據庫會持續監測主數據庫上的二進制日志,實時讀取并執行這些日志中的操作,從而保持與主數據庫的數據一致性。
2. 主數據庫(master)
2.1 my.cnf配置文件
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
character_set_server=utf8mb4
server-id 配置數據庫的id,主數據庫配置為1
log-bin=mysql-bin開啟二進制記錄
binlog-ignore-db 配置不需要同步的數據庫
2.2 查看binlog信息
SHOW MASTER STATUS命令用于查看MySQL主服務器當前正在使用的二進制日志文件的文件名和偏移量信息。
mysql -uroot -p
show master status
binlog文件名File mysql-bin.000003 和偏移量Position 188記一下,后面slave需要用。
3. 從數據庫(slave)
3.1 my.cnf配置文件
[mysqld]
server-id=2
read_only=1
server-id 配置數據庫的id,從數據庫配置為2
read_only=1 只讀模式
3.2 配置同步參數
進入mysql命令控制臺
mysql -uroot -p
CHANGE MASTER TO MASTER_HOST='192.168.31.163',\
MASTER_PORT=3312,\
MASTER_USER='root',\
MASTER_PASSWORD='123456',\
MASTER_LOG_FILE='mysql-bin.000003',\
MASTER_LOG_POS=188
3.3 開啟主從同步
在從服務器上執行以下命令,啟動主從同步:
START SLAVE;
可以使用以下命令檢查主從復制的狀態:
SHOW SLAVE STATUS\G
查看輸出中Slave_IO_Running和Slave_SQL_Running的值。如果這些狀態為yes,則表示主從同步已成功建立。
用Navicat等數據庫工具去測試一下,master更新數據立馬被同步到slave。
4. 結尾
本文我們學習了如何配置和管理MySQL主從同步,實現了在生產環境中的讀寫分離和高可用性。實際情況下:寫數據庫只有一個,讀數據庫會有多個,是一主多從的架構。
Spring Cloud 微服務系列 完整的代碼在倉庫的sourcecode/spring-cloud-demo目錄下。
gitee(推薦):https://gitee.com/cunzaizhe/xiaohuge-blog
github:https://github.com/tigerleeli/xiaohuge-blog
關注微信公眾號:“小虎哥的技術博客”,讓我們一起成為更優秀的程序員!
原文來源:https://mp.weixin.qq.com/s/NNPHqE5SDu1aVfe9m4TZTw
來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。
Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利
蘇公網安備32010402000125
蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司
南京思必達教育科技有限公司版權所有 百度統計