Docker 方式 MySQL 主從搭建

聞人_發表於2019-01-20

環境準備

  • CentOS 7
  • Docker 18.09.0
  • MySQL 5.7

環境搭建

  1. 使用 Docker 搜尋 MySQL 映象,並且拉取 MySQL 5.7 版本.
docker search mysql
複製程式碼

Docker 方式 MySQL 主從搭建

docker pull mysql:5.7
複製程式碼

Docker 方式 MySQL 主從搭建

  1. 首先新建一個資料夾 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
複製程式碼
  1. 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 例項執行狀態

Docker 方式 MySQL 主從搭建

  1. Docker 方式連線 MySQL
docker exec -it master bash
 mysql -uroot -p
複製程式碼

Docker 方式 MySQL 主從搭建

  1. 檢查 主節點 MySQL 的 master 狀態和 bin log 開啟情況

Docker 方式 MySQL 主從搭建

  1. 同樣方式搭建從節點 MySQL 例項
mkdir slave && vi ./slave/my.cnf
複製程式碼

Docker 方式 MySQL 主從搭建

  1. 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
複製程式碼

Docker 方式 MySQL 主從搭建

  1. 進入從節點 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;
複製程式碼
  1. 從節點 MySQL 開啟同步,並且檢視同步狀態
start slave
show slave status
複製程式碼

Docker 方式 MySQL 主從搭建
當 SlaveIORunning 和 SlaveSQLRunning 都是 Yes 了,表明同步開啟成功,接下來就是驗證了.

結果驗證

  1. 首先連線進入主節點 MySQL 例項,並且建立資料庫 test
docker exec -it master bash
mysql -uroot -p123456
create database test;
複製程式碼

Docker 方式 MySQL 主從搭建

  1. 連線進入從節點 MySQL 例項,檢視當前資料庫
docker exec -it slave bash
mysql -uroot -p123456
show databases;
複製程式碼

Docker 方式 MySQL 主從搭建

可以從圖中看到此刻主節點新增資料庫的操作也同步到從節點上了.

到此, Docker 方式的簡單版本 MySQL 主從搭建就算完成了.

相關文章