docker 启动MySQL一直处于restarting状态

文章讲述了在尝试通过Docker启动MySQL服务时遇到的问题,即MySQL因无法找到/etc/mysql/conf.d目录而失败。解决方案包括创建一个临时的mysql容器,复制其/etc/mysql目录到本地,然后删除临时容器,最后使用挂载新目录的命令启动完整容器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值