下載安裝docker desktop
官網(wǎng)地址
拉取mysql鏡像
docker pull mysql:5.7
運(yùn)行兩個(gè)容器
主數(shù)據(jù)庫
docker run -d -p 3333:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
從數(shù)據(jù)庫
docker run -d -p 3334:3306 --name slave -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
查看運(yùn)行的容器
docker ps
查看master容器IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' master
修改mysql配置文件
進(jìn)入容器
docker exec -it master /bin/bash
ls
cd etc
ls
這里的my.cnf就是數(shù)據(jù)庫配置
容器沒有編輯器修改,復(fù)制到本地
復(fù)制容器內(nèi)文件到本地
docker cp master:/etc/my.cnf D:\mysql\master
修改完成以后復(fù)制本地文件到容器
docker cp D:\mysql\master\my.cnf master:/etc
修改內(nèi)容:
master
[mysqld]
server-id=101
## 開啟二進(jìn)制日志功能具帮,可以隨便日恪(關(guān)鍵)
log-bin=mysql-bin
secure_file_priv=/var/lib/mysql
#設(shè)置密碼規(guī)則
default_authentication_plugin=mysql_native_password
#最大連接數(shù)設(shè)置 根據(jù)實(shí)際需要 自行調(diào)整
max_connections=1000
slave
[mysqld]
server-id=102
## 開啟二進(jìn)制日志功能硅确,以備Slave作為其它Slave的Master時(shí)使用
log-bin=mysql-slave-bin
## relay_log配置中繼日志
relay_log=edu-mysql-relay-bin
secure_file_priv=/var/lib/mysql
#設(shè)置密碼規(guī)則
default_authentication_plugin=mysql_native_password
#最大連接數(shù)設(shè)置 根據(jù)實(shí)際需要 自行調(diào)整
max_connections=1000
修改完成以后重啟兩個(gè)容器
docker restart master slave
設(shè)置主從復(fù)制
進(jìn)入master容器數(shù)據(jù)庫
docker exec -it master /bin/bash
mysql -uroot -p123456
建立帳戶并授權(quán) slave
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
查看master狀態(tài)
show master status;
記錄File和Position的值
記住不要對master數(shù)據(jù)庫進(jìn)行其他修改操作,否則File和Position的值會發(fā)生變化
進(jìn)入slave容器數(shù)據(jù)庫
docker exec -it slave /bin/bash
mysql -uroot -p123456
復(fù)制主機(jī)命令
CHANGE MASTER TO MASTER_HOST='172.17.0.2',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1045;
MASTER_HOST: master數(shù)據(jù)庫IP地址
MASTER_LOG_FILE:master數(shù)據(jù)庫File
MASTER_LOG_POS: master數(shù)據(jù)庫Position
啟動從服務(wù)器復(fù)制功能
start slave;
查看從服務(wù)器狀態(tài)
show slave status\G;
這兩條都為Yes,說明成功廉白,通過navicat涵妥,操作master服務(wù)器新增數(shù)據(jù)庫乖菱,表,數(shù)據(jù)時(shí)蓬网,slave服務(wù)器會相應(yīng)的生成數(shù)據(jù)庫窒所,表和數(shù)據(jù)