翼度科技»论坛 云主机 服务器技术 查看内容

Docker内部MySQL如何开启binlog日志

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
查看 binlog状态

在MySQL终端执行一下,Navicat都行
  1. show variables like '%log_bin%'
复制代码

发现是没有开启binlog

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

添加下面内容
注意:
log-bin = /logs/mysql-bin.log 是Docker内部的路径,不是Linux宿主机的路径
  1. #设置日志格式
  2. binlog_format = mixed
  3. #设置日志路径,注意路经需要mysql用户有权限写
  4. log-bin = /logs/mysql-bin.log
  5. #设置binlog清理时间
  6. expire_logs_days = 5
  7. #binlog每个日志文件大小
  8. max_binlog_size = 50m
  9. #binlog缓存大小
  10. binlog_cache_size = 4m
  11. #最大binlog缓存大小
  12. max_binlog_cache_size = 512m
复制代码
重启docker容器重启失败发现报错信息

docker restart 命令重启docker之后发现重启失败
查看docker日志:
docker logs 容器id
  1. 2021-01-16 07:05:53 0 [Note] mysqld (mysqld 5.6.49-log) starting as process 29 ...
  2. mysqld: File '/logs/mysql-bin.index' not found (Errcode: 13 - Permission denied)
  3. 2021-01-16 07:05:53 29 [ERROR] Aborting
  4. 2021-01-16 07:05:53 29 [Note] Binlog end
复制代码
上面意思是没权限,需要给docker内部的这个/logs赋予权限

开始解决问题

把上面修改binlog的配置还原回来,重启docker容器,让docker重启成功,进入docker容器
命令 : docker exec -it 容器id bash
进入容器之后执行:
  1. chown -R mysql:mysql   /logs
复制代码
修改MySQL目录的用户和用户组权限
修改完了之后退出docker
然后再给修改binlog日志信息,接着重启docker容器,发现docker容器启动成功

验证一下

连接MySQL执行一下
  1. show variables like '%log_bin%'
复制代码

发现已经开启binlog

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/server/319058h0p.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
来自手机

举报 回复 使用道具