在使用Docker容器启动MySQL 的时候进行目录挂载分别会出现两个问题
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!
mysqld: Can't read dir of '/etc/mysql/mysql.conf.d/' (Errcode: 2 - No such file or directory)
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
这意味着 MySQL 在启动时无法找到 /etc/mysql/conf.d/ 目录,这通常是因为这个目录在你挂载的配置卷 /mydata/mysql/conf 中不存在或没有正确创建。
检查本地配置目录:
确认本地的 /mydata/mysql/conf 目录中是否存在 conf.d 和 mysql.conf.d 子目录,如果不存在,创建这个子目录。
-- 创建子目录
mkdir -p /mydata/mysql/conf/conf.d
mkdir -p /mydata/mysql/conf/mysql.conf.d
此时,可以通过命令进入conf目录中检查是否已经存在子目录
cd /mydata/mysql/conf
删除或重命名旧容器:
-- 删除它,以释放容器名称
docker rm mysql
-- 重命名旧容器
docker rename mysql old_mysql
重启容器:
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
此时,通过命令可以查看是否可以已经启动MySQL容器
docker ps