前期準(zhǔn)備
- 安裝 docker。
- 安裝 docker-compose 命令帐偎。
- 推薦本機(jī)安裝 mycli 命令削樊。語法幾近原生兔毒,多了補(bǔ)全沛硅。
- 文章涉及到的 docker-compose.yml 和 Dockerfile 文件可以在 https://github.com/jessun2017/docker-files 的 mysql4dev 目錄下找到摇肌。
說明
簡單描述就是 docker-compose 命令可以按照 docker-compose.yml 中的配置來運(yùn)行兩個(gè)包含 mysql 服務(wù)的容器仪际。之后再單獨(dú)使用命令來配置從庫設(shè)置树碱。
version: "3"
services:
mysql_master:
build:
context: ./
dockerfile: master/Dockerfile
volumes:
- "./mysql_master:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: root
links:
- mysql_slave
ports:
- "33060:3306"
restart: always
hostname: mysql_master
mysql_slave:
build:
context: ./
dockerfile: slave/Dockerfile
volumes:
- "./mysql_slave:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- "33061:3306"
restart: always
hostname: mysql_slave
兩個(gè)數(shù)據(jù)庫的 root 用戶密碼都是 root 成榜。主庫的連接地址為:127.0.0.1:33060
,從庫的連接地址為:127.0.0.1:33061
赎婚。兩個(gè)數(shù)據(jù)庫的持久化都會在當(dāng)前目錄下 ./mysql_master
和 ./mysql_slave
挣输。
步驟
- 在 mysql4dev 目錄下運(yùn)行
docker-compose up
啟動兩個(gè) mysql 容器。 - 首先
docker ps
查看一下兩個(gè)容器的基本情況停士。
docker ps 顯示結(jié)果 - 使用
mycli -h 127.0.0.1 -P 33060 -u root
命令來操作主庫恋技。輸入show master status;
來確定 binlog 文件名和記錄的位置猖任。
show master status; 顯示結(jié)果 - 使用
mycli -h 127.0.0.1 -P 33061 -u root
命令來操作從庫。輸入CHANGE MASTER TO MASTER_HOST='mysql_master',MASTER_USER='root',MASTER_PASSWORD='root',MASTER_LOG_FILE='replicas-mysql-bin.000005',MASTER_LOG_POS=154;
- 繼續(xù)
stop slave;
刁赖,start slave
來啟動從庫的復(fù)制功能宇弛。 - 使用
show slave status;
鸡典,如果顯示如下,表示主從設(shè)置已經(jīng)成功枪芒。
[圖片上傳失敗...(image-36b34f-1583686594141)] - 這里有個(gè)注意點(diǎn)彻况,如果
show slave status;
中顯示了 error谁尸,就需要重新從步驟3開始操作,重新同步纽甘。否則復(fù)制功能就會停滯良蛮。