1. 事先声明
按照下面的步骤,相信一定能成功,我已经部署了五次了,如果不行,👊我啊,🌹
2. 环境配置
mysql:5.7.29
IP | 系统 | CPU/内存 | 磁盘 |
---|---|---|---|
192.168.10.50 | centos7 | 1核2G | 20G |
3. 创建docker网络
docker network create mysql_network
4. 创建master(写数据库)
4.1 创建data和conf配置文件
# 创建文件夹
mkdir -p /usr/local/docker/mysql/master01
cd /usr/local/docker/mysql/master01
# 创建MySQL需要的持久卷
mkdir data
# 创建MYSQL的配置文件
mkdir conf
vim conf/mysql.cnf
### 输入下列内容
[mysqld]
# 同一个主从模式下,id不能相同
server-id = 1
# 设置同步的文件名
log-bin=mysql-bin
# 防止出现1055异常
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
4.2 创建docker-compose.yml
version: '3'
services:
master01:
restart: always
image: mysql:5.7.29
container_name: master01
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
volumes:
- ./data:/var/lib/mysql
- ./conf/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
networks:
default:
external:
name: mysql_network
4.3 启动主库
docker-compose up -d
5. 创建主库同步用户
5.1 连接数据库
5.2 创建主库同步用户
# 创建用户uncle和密码123456
create user 'uncle'@'%' identified by '123456';
# 授权
grant replication slave on *.* to 'uncle'@'%';
# 刷新一下权限
flush privileges;
# 查看master节点状态
show master status;
# 查看二进制日志相关的配置项
show global variables like 'binlog%';
# 查看server相关的配置项是否生效
show global variables like 'server%';