当前位置: 代码网 > 服务器>服务器>云虚拟主机 > Docker内部MySQL如何开启binlog日志

Docker内部MySQL如何开启binlog日志

2024年05月14日 云虚拟主机 我要评论
查看 binlog状态在mysql终端执行一下,navicat都行show variables like '%log_bin%'发现是没有开启binlog修改docker的mysql的my.cnf配置

查看 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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com