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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章
- 01-07Tomcat部署Bolo动态博客
- 01-07图文详解nginx日志切割的实现
- 01-07如何解决swarm docker 端口不通问题
- 01-07详解nginx location指令
- 01-07如何解决docker http 500错误问题
- 01-07windows server 2008安装配置DNS服务器
- 01-07Linux上搭载Nginx负载均衡配置使用案例详解
- 01-07NGINX 权限控制文件预览和下载的实现原理
- 01-07Nginx防盗链与服务优化配置的全过程
- 01-07使用 Apache 反向代理的设置技巧


阅读排行
推荐教程
- 12-23linux中ftp无法访问怎么办
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 01-05Shell脚本去重的几种方法实例
- 12-22kvm虚拟机配置NAT端口转发的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法




