问题描述
docker 启动MySQL失败,我通过docker logs -f mysql命令查看日志发现以下错误
[ERROR] [Entrypoint]: mysqld failed while attempting to check config
command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.WHijR591XA
mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory)
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
该日志大概意思就是说没找到 /etc/mysql/conf.d 这个文件夹。原因其实是官方的配置文件已经不放在/etc/mysql底下了,这底下就两个空文件夹。
解决方案
1.先创建一个简单的mysql容器实例
docker run -p 3306:3306 --name sample-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
2.复制里面的/etc/mysql文件夹
docker cp sample-mysql:/etc/mysql/. /mydata/mysql/conf
3.删除掉临时容器
docker rm -f sample-mysql
4.启动完整的容器命令
docker run \
-p 3306:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
--privileged=true
-d mysql:5.7
版权归原作者 爱敲代码的小蜜蜂 所有, 如有侵权,请联系我们删除。