很多教程看起来都不太对, 尤其需要修改my.cnf挂载套娃的配置,直接修改 /etc/mysql/mysql.conf.d/mysqld.conf即可,故备忘一下
1、Docker Hub 去docker 公共仓库去找到 mysql 的对应版本,这里我使用的是5.7.37
# 拉取镜像
docker pull mysql:5.7.37
2、log mysql的日志路径, data 对应mysql 的数据存放路径, conf 对应的配置路径
#创建对应的挂载文件, 设置密码
docker run -itd -p 13306:3306 --name mymysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=zhao1234 \
-d mysql:5.7.37
3、进入docker 容器登录 查看
mysql -h localhost -u root -p zhao1234
4、开启binlog日志
my.cnf 软连接挂载 /etc/alternatives/my.cnf
/etc/alternatives/my.cnf 又挂载的 /etc/mysql/mysql.cnf
/etc/mysql/mysql.cnf 又是包含 /etc/mysql/conf.d/ 和 /etc/mysql/mysql.conf.d/ 路径
套娃搞了很多次不知道为啥, 这里我们不用关心
//加载 conf.d 路径下的配置文件
!includedir /etc/mysql/conf.d/
//加载 mysql.conf.d 的配置文件, 修改mysqld.cnf 进行修改配置
!includedir /etc/mysql/mysql.conf.d/
5、其它的不用关注了, 找到 mysqld.cnf 进行修改配置 即可
# 这里的路径注意是 容器内部的路径
log-bin=/var/lib/mysql/log_bin/mysql-bin
server-id=1
6、再去创建 log-bin 配置对应的文件路径,注意观察权限, 简单操作的话 直接 chmod 777 文件,也可以
7、重启mysql, 客户端查询 Binlog的开启状态
show variables like 'log_bin%';
show variables like '%binlog_format%';
查看binlog的 存储模式
默认 row