如何使用Docker部署MySQL就不說了,請參考我的另一篇文章服務器快速部署--使用Docker部署MySQL,本篇就使用之前的方法部署兩個MySQL到不同的虛擬機上。
主數據庫Master配置
操作系統:
CentOS 7
IP地址:192.168.1.212
MySQL版本:MySQL 5.7
容器名稱: felix-mysql-master
從數據庫Slave配置
操作系統:
CentOS 7
IP地址:192.168.1.202
MySQL版本:MySQL 5.7
容器名稱: felix-mysql-slave
參照服務器快速部署--使用Docker部署MySQL使用Docker部署完兩臺數據庫服務器并啟動之后,如果你的從庫
是由主庫
克隆而來的話,需要修改從庫
的/mysql/data/auto.cnf
中的server-uuid,不與主庫的server-uuid重復即可。
接下來開始進行配置
修改配置文件
修改主庫配置文件
vi /mysql/data/my.cnf
#修改server-id = 1
修改從庫配置文件
vi /mysql/data/my.cnf
#修改server-id = 10
在主庫中添加用戶用來提供給從庫進行訪問
進入主庫的docker容器
docker exec -it felix-mysql-master bash
進入主庫數據庫
mysql -uroot -p
#輸入主庫mysql的root的密碼
添加用戶并賦予權限
GRANT ALL PRIVILEGES ON *.* TO 'felix'@'%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
#然后退出數據庫,退出容器
重啟容器
docker restart felix-mysql-master
再次進入容器并進入主數據庫
docker exec -it felix-mysql-master bash
mysql -uroot -p
#輸入主庫mysql的root的密碼
進入數據庫后,查看master的狀態
show master status;
下圖表示成功
image
為從庫配置master的信息
進入從庫的docker容器
docker exec -it felix-mysql-slave bash
進入從庫數據庫
mysql -uroot -p
#輸入從庫mysql的root的密碼
配置master信息
CHANGE MASTER TO MASTER_HOST='192.168.1.212',MASTER_USER='felix',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mybinlog.000009',MASTER_PORT=3306;
#然后退出數據庫,退出容器
重啟容器
docker restart felix-mysql-slave
再次進入容器并進入從數據庫
docker exec -it felix-mysql-slave bash
mysql -uroot -p
#輸入從庫mysql的root的密碼
進入數據庫后,查看從庫的狀態
show slave status\G;
下圖表示成功
image
測試主從配置是否成功
進入主數據庫中,創建一個測試數據庫
image
然后進入從數據庫show databases;
,查看是否真正的同步了
image
可見,在主數據庫做出修改之后,從數據庫中的內容也改變了,達到了主從同步的目的。后面的章節會進行讀寫分離、水平/垂直切分、數據庫集群的講解,歡迎關注。