Docker内部MySQL怎么开启binlog日志?

目录
文章目录隐藏
  1. 查看 binlog 状态
  2. 修改 Docker 的 MySQL 的 my.cnf 配置文件
  3. 重启 docker 容器重启失败发现报错信息
  4. 开始解决问题
  5. 验证一下

本文主要内容是关于 Docker 内部 MySQL 如何开启 binlog 日志方法,具有很好的参考价值,希望对大家有所帮助。

查看 binlog 状态

在 MySQL 终端执行一下,Navicat 就行:

show variables like '%log_bin%'

查看 binlog 状态

发现是没有开启 binlog。

修改 Docker 的 MySQL 的 my.cnf 配置文件

添加下面内容

注意:

log-bin = /logs/mysql-bin.log 是 Docker 内部的路径,不是 Linux 宿主机的路径

#设置日志格式
binlog_format = mixed
#设置日志路径,注意路经需要 mysql 用户有权限写
log-bin = /logs/mysql-bin.log
#设置 binlog 清理时间
expire_logs_days = 5
#binlog 每个日志文件大小
max_binlog_size = 50m
#binlog 缓存大小
binlog_cache_size = 4m
#最大 binlog 缓存大小
max_binlog_cache_size = 512m

重启 docker 容器重启失败发现报错信息

docker restart 命令重启 docker 之后发现重启失败

查看 docker 日志:

docker logs 容器 id

2021-01-16 07:05:53 0 [Note] mysqld (mysqld 5.6.49-log) starting as process 29 ...
mysqld: File '/logs/mysql-bin.index' not found (Errcode: 13 - Permission denied)
2021-01-16 07:05:53 29 [ERROR] Aborting
2021-01-16 07:05:53 29 [Note] Binlog end

上面意思是没权限,需要给 docker 内部的这个/logs 赋予权限。

开始解决问题

把上面修改 binlog 的配置还原回来,重启 docker 容器,让 docker 重启成功,进入 docker 容器

命令 : docker exec -it 容器 id bash

进入容器之后执行:

chown -R mysql:mysql   /logs

修改 MySQL 目录的用户和用户组权限

修改完了之后退出 docker

然后再给修改 binlog 日志信息,接着重启 docker 容器,发现 docker 容器启动成功。

验证一下

连接 MySQL 执行一下:

show variables like '%log_bin%'

修改 binlog 日志信息

发现已经开启 binlog。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » Docker内部MySQL怎么开启binlog日志?

发表回复