Docker内部MySQL开启binlog日志「建议收藏」

Docker内部MySQL开启binlog日志「建议收藏」查看binlog状态在MySQL终端执行一下,Navicat都行showvariableslike’%log_bin%’发现是没有开启binlog修改Docker的MySQL的my.cnf配置文件添加下面内容,注意:log-bin=/logs/mysql-bin.log是Docker内部的路径,不是Linux宿主机的路径#设置日志格式binlog_format=mixed#设置日志路径,注意路经需要mysql用户有权限写log-bin=/logs/mysql

大家好,欢迎来到IT知识分享网。

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25908.html

(0)
上一篇 2023-04-13 10:00
下一篇 2023-04-17 20:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信