現在容器技術越來越普及,隨著 Docker, Kubernetes 不斷發展,雲原生的概念十分火熱。掌握一些容器知識,會基於 Docker,Kubernetes 環境進行服務端開發對後端開發者也成了必不可少的一部分。本文主要描述如何使用 Docker 技術快速搭建一個 MySQL 主從架構。
CentOS 7
Docker 18.09.0
MySQL 5.7
環境搭建1. 使用 Docker 搜索 MySQL 鏡像,並且拉取 MySQL 5.7 版本。
docker search mysql
docker pull mysql:5.7
2. 首先新建一個文件夾 master 裡面存放 MySQL 主節點的配置文件 my.cnf。
mkdir master && vi ./master/my.cnf
開啟 bin log 和指定 server-id
[mysqld]
## 開啟二進位日誌功能
log-bin = mysql-bin
## 設置server_id,一般設置為IP,注意要唯一
server-id = 3310
3. Docker 運行 MySQL 鏡像
docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name master -v $PWD/master:/etc/mysql/conf.d -p 3310:3306 mysql:5.7
運行成功後使用 docker ps mysql 查看 MySQL 實例運行狀態
4. Docker 方式連接 MySQL
docker exec -it master bash
mysql -uroot -p
5. 檢查 主節點 MySQL 的 master 狀態和 bin log 開啟情況
6. 同樣方式搭建從節點 MySQL 實例
mkdir slave && vi ./slave/my.cnf
7. Docker 方式運行從節點 MySQL 實例
docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name slave -v $PWD/slave:/etc/mysql/conf.d -p 3311:3306 mysql:5.7
8. 進入從節點 MySQL 實例關聯主節點 MySQL 實例
change master to master_host='localhost', master_user='root', master_password='123456', master_port=3310, master_log_file='mysql-bin.000003', master_log_pos=154, master_connect_retry=60;
9. 從節點 MySQL 開啟同步,並且查看同步狀態
start slave
show slave status
當 SlaveIORunning 和 SlaveSQLRunning 都是 Yes 了,表明同步開啟成功,接下來就是驗證了.
10. 首先連接進入主節點 MySQL 實例,並且創建資料庫 test
docker exec -it master bash
mysql -uroot -p123456
create database test;
11. 連接進入從節點 MySQL 實例,查看當前資料庫
docker exec -it slave bash
mysql -uroot -p123456
show databases;
可以從圖中看到此刻主節點新增資料庫的操作也同步到從節點上了。
到這裡, Docker 方式的 MySQL 主從搭建就算完成了,希望對你有所幫助。