Docker是目前非常流行的一種容器化技術,在部署MySQL等數據庫的時候,也可以使用Docker來方便地搭建一主多從的集群。
以下是一個基于Docker的一主多從MySQL集群的搭建方法:
# 1. 拉取MySQL的Docker鏡像
docker pull mysql
# 2. 啟動MySQL主庫容器,并指定root用戶的密碼為root,同時開啟binlog功能
docker run --name mysql-master -e MYSQL_ROOT_PASSWORD=root -e MYSQL_LOG_BIN=true -d mysql
# 3. 啟動MySQL從庫的容器,同時指定從庫的主機地址和端口,并設置用戶名和密碼
docker run --name mysql-slave1 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_LOG_BIN=true -e MYSQL_MASTER_HOST=mysql-master -e MYSQL_MASTER_PORT=3306 -e MYSQL_MASTER_USER=root -e MYSQL_MASTER_PASSWORD=root -d mysql
# 4. 如果需要啟動多個從庫,只需要重復上一步,并將容器名稱和端口號等參數修改一下即可
docker run --name mysql-slave2 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_LOG_BIN=true -e MYSQL_MASTER_HOST=mysql-master -e MYSQL_MASTER_PORT=3306 -e MYSQL_MASTER_USER=root -e MYSQL_MASTER_PASSWORD=root -d mysql
# 5. 啟動容器并進入MySQL的命令行
docker exec -it mysql-master bash
mysql -uroot -p
# 6. 在MySQL中創建復制用戶,并授權
CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
# 7. 在從庫中停止復制操作,并設置主庫信息
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='mysql-master', MASTER_PORT=3306, MASTER_USER='replica', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0;
# 8. 啟動從庫的復制操作
START SLAVE;
# 9. 重復上面的步驟,完成所有從庫的配置
以上就是通過Docker搭建一主多從MySQL集群的簡單步驟,在實際生產環境中,還需要注意網絡配置、數據同步等問題,不過通過以上簡單的操作,可以在開發測試過程中替代傳統的手動配置方式,提高開發效率。