Docker内部MySQL怎么开启binlog日志?
目录
本文主要内容是关于 Docker 内部 MySQL 如何开启 binlog 日志方法,具有很好的参考价值,希望对大家有所帮助。
查看 binlog 状态
在 MySQL 终端执行一下,Navicat 就行:
show variables like '%log_bin%'
发现是没有开启 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。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » Docker内部MySQL怎么开启binlog日志?
码云笔记 » Docker内部MySQL怎么开启binlog日志?