【MySQL】mysqld Can‘t read dir of ‘etcmysqlconf.d‘ (Errcode 2 - No such file or directory)

有时候我们在使用Docker启动MySQL的时候会遇到启动失败,使用docker logs命令查看的时候发现了如下的错误日志.

[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

你可能感兴趣的:(数据库,错误异常,mysql,数据库)