使用 Docker 配置 MySQL 主從叢集
阿新 • • 發佈:2022-04-29
使用 Docker Compose
啟動一主一從的 MySQL 叢集。
GitHub:https://github.com/khs1994-docker/mysql-cluster
配置檔案內容
可以通過命令配置,這裡以配置檔案舉例。
主伺服器
[mysqld]
log-bin = mysql-bin
server-id = 1
從伺服器
[mysqld]
server-id = 10
啟動 Docker MySQL
編寫 docker-compose.yml
檔案,檔案內容請檢視 GitHub。
新建 .env
檔案,寫入以下內容
MYSQL_ROOT_PASSWORD=mytest
啟動 Docker 容器
$ docker-compose up -d
關聯節點
下面了介紹手動執行的步驟,GitHub 中將這一步寫入了 shell 指令碼檔案。
主伺服器
登入主伺服器
$ docker-compose exec mysql_master mysql -uroot -pmytest
GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by 'mytest';
SHOW master status;
記住 File
、Position
的值。我查出來的是 mysql-bin.000004
、312
從伺服器
新開啟一個終端,登入從伺服器
$ docker-compose exec mysql_node mysql -uroot -pmytest
change master to master_host='mysql_1',master_user='backup',
master_password='mytest',master_log_file='mysql-bin.000004',
master_log_pos=312,master_port=3306;
start slave;
show slave status;
測試
在主伺服器建立一個數據庫
create database test;
在從伺服器檢視資料庫,發現已經存在了 test(與主伺服器同步)
show databases;