一、Docker MySQL 主從複製概述
MySQL 主從複製是實現 MySQL 資料庫高可用性的重要手段之一。當主機宕機時,從機可以頂替主機繼續提供服務,從而保證整個服務的連續性和穩定性。Docker 是一種輕量級容器技術,可以更好地實現 MySQL 主從部署的靈活性和可移植性。接下來本文將為您詳細介紹 Docker MySQL 主從複製的實現步驟和注意事項。
二、Docker MySQL 主從複製環境搭建
1、首先拉取 MySQL 鏡像
docker pull mysql
2、創建主節點容器,並指定容器名為 mysql-master
docker run -p 3306:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql
3、創建從節點容器,並指定容器名為 mysql-slave
docker run -p 3307:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql
4、進入主節點容器,運行以下命令開啟二進位日誌
docker exec -it mysql-master bash
# 進入 MySQL 管理員模式
mysql -u root -p123456
# 開啟二進位日誌
use mysql;
update user set host = '%' where user = 'root';
set global binlog_format = 'ROW';
set global log_slave_updates = on;
create user 'slave'@'%' identified by '123456';
grant replication slave on *.* to 'slave'@'%';
# 退出 MySQL 管理員模式及容器
exit
exit
5、進入從節點容器,運行以下命令配置主從關係
docker exec -it mysql-slave bash
# 進入 MySQL 管理員模式
mysql -u root -p123456
# 配置主從關係
CHANGE MASTER TO
MASTER_HOST='主節點 IP 或域名',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001', # 根據主節點的 binlog_filename 參數修改
MASTER_LOG_POS=154; # 根據主節點的 binlog_position 參數修改
# 啟動同步
start slave;
# 查看同步狀態
show slave status\G;
# 退出 MySQL 管理員模式及容器
exit
exit
三、Docker MySQL 主從複製注意事項
1、主從節點之間的網路要求必須是互通的,可以通過 docker network 或自定義網路解決。
2、在配置主從關係時,要關閉防火牆或設置防火牆的規則,以免影響主從節點之間的正常通信。
3、在開啟主節點的二進位日誌時,一定要注意 binlog_format 的設置,一般推薦設置為 ROW 模式。
4、在啟動同步時,一定要注意 MASTER_LOG_FILE 和 MASTER_LOG_POS 參數的設置,這兩個參數是同步的關鍵。
5、MySQL 主從複製是非同步的,因此有一定的延遲,可根據應用場景進行調整和優化。
四、總結
本文介紹了 Docker MySQL 主從複製的實現步驟和注意事項。希望本文能夠對您在開發和運維過程中遇到的 MySQL 主從相關問題有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/193141.html