docker部署mysql8主從

风吹南下發表於2024-09-05

一、拉取mysql映象

docker pull mysql

二、建立容器

# 主庫
docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql

# 從庫
docker run -itd -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave mysql

三、配置主庫

[mysqld]

## 同一區域網內注意要唯一

server-id=100

## 開啟二進位制日誌功能,可以隨便取(關鍵)

log-bin=mysql-bin

四、配置從庫

[mysqld]
## 設定server_id,注意要唯一
server-id=101
## 開啟二進位制日誌功能,以備Slave作為其它Slave的Master時使用
log-bin=mysql-slave-bin
## relay_log配置中繼日誌
relay_log=edu-mysql-relay-bin

配置完成之後重啟mysql

docker restart mysql-master

docker restart mysql-slave

五、在主庫建立使用者並授權,允許從庫服務連線主庫的服務

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
ALTER USER 'slave'@'%' identified with  mysql_native_password  by '123456';
flush privileges;

六、配置主從同步

# 查主庫中詢File和Position
show master status;

# 在從庫中設定主庫資訊
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= 784, master_connect_retry=30;
flush privileges;
 

七、啟動主從

# 在從庫中執行
start slave;

# 檢視狀態
show slave status \G

出現雙yes則同步正常

相關文章