夜雪剑辰[yexuejc] 的个人博客 夜雪剑辰[yexuejc] 的个人博客

记录精彩的程序人生

目录
docker-mysql使用中的坑
/  

docker-mysql使用中的坑

记坑一小笔
image.png

还原坑的场景

docker 安装 mysql (版本5.7.26)
映射配置目录/etc/mysql到宿主机/opt/mysql/conf

docker run -d \
--name mysql5726 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /opt/mysql/conf:/etc/mysql \
-p 3306:3306 \
-d mysql:5.7.26

然后开开心心的写我的my.cnf【坑1:window上的配置文件名称是my.ini,linux上的是my.cnf;习惯window环境开发的小伙伴可能会进坑】

编写my.cnf内容
1.vi /opt/mysql/conf/my.cnf粘贴如下内容

[mysqld]
skip-grant-tables
#解决:mysql5.7 timestamp默认值‘0000-00-00 00:00:00’报错
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

ESC>Alt+;>输入:wq保存退出
然后(嗯嗯嗯嗯...权限)linux中很注重权限,宿主机上的文件授权给容器使用。网上一般都是chmod -R 777 /opt/mysql/conf/my.cnf这种操作模式,改完如下
image.png

重启容器 docker restart mysql5726

然后就发现:没生效? ,开始怀疑人生?
查看日志吧
image.png

被忽略了??? so what ?

本地配置文件虽然映射过去了,MySQL对于配置文件的权限会检查,所以给忽略了。
自我怀疑中:我明明都给了最大权限了,还不对?既然最多的权限不对,那么肯定是给多了

查看了资料后发现这里给多了一个其他用户的w权限
修改如下

chmod o-w my.cnf

image.png

然后重启生效了

ps:为啥不能多那个其他用户写的权限:不让其他用户修改这个文件,这也是一种保护


标题:docker-mysql使用中的坑
作者:yexuejc
地址:https://blog.yexuejc.top/articles/2020/07/31/1596182071686.html