记录一个Docker 安装Mysql的小问题,查了一下网上说的,说的是权限的问题,但是我仔细一瞧发现并不是,权限问题的话应该是这样的 mysqld:Can’t read dir of ‘/etc/my
记录一个Docker 安装Mysql的小问题,查了一下网上说的,说的是权限的问题,但是我仔细一瞧发现并不是,权限问题的话应该是这样的
mysqld:Can’t read dir of ‘/etc/mysql/conf.d’
(Errcode:13 -Permission denied) mysqld:[ERROR]Fat
在容器的运行命令加上
–privileged=true即可,
但是我试着没有效果,很明显我这个并不是权限的问题,后来想到有可能是挂载目录出现的问题。结果还真是。用如下的方法就能解决。
首先拉取镜像
docker pull mysql:5.7
然后安装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
但是通过命令docker ps查看没有这个容器
docker ps
查看运行日志docker logs 容器id
查看容器id(以下命令可以查看全部容器,包括启动失败的)
docker ps -a
查看容器的启动日志
docker logs 33e03e9baa15
报错如下:
就是不存在/etc/mysql/conf.d这个目录
原因:
我们在书写创建容器的命令出了问题
我们这个挂载目录出了问题,我的理解是mysql容器的/etc/mysql目录挂载到宿主机的 /mydata/mysql/conf目录,由于宿主机的 /mydata/mysql/conf是空的,所以找不到/etc/mysql/conf.d中conf.d这个目录,导致容器创建失败。我这么做的目的是将配置文件挂载到宿主机,但是 我查看mysql官网发现这个挂载方式已经不适用了,配置文件已经不再/etc/mysql里了,里面只有两个空目录,分别是conf.d和mysql.conf.d,这两个目录里面什么都没有。真正的配置文件是/etc/my.cnf,因此需要修改。
mysql官网地址
解决方法:先随意创建一个mysql容器
docker run -d -e MYSQL_ROOT_PASSWORD=root mysql:5.7
查看运行的容器
docker ps
将mysql容器中的/etc/mysql中的mysql目录下的文件复制到宿主机/mydata/mysql/conf目录下
命令格式:docker cp 容器id:容器内目录 宿主机目录
docker cp 4b1a0fe53315:/etc/mysql/ /mydata/mysql/conf
这样的话/mydata/mysql/conf下就有conf.d和mysql.conf.d两个空文件夹了,查看 官网说明,/etc/my.cnf里面有以下两行,大意就是my.cnf这个配置文件又包含了/etc/mysql/conf.d/和/etc/mysql/mysql.conf.d/目录下的配置文件,所以我们可以把cnf后缀结尾的配置文件放进下面 两个文件夹中,达到修改默认配置的作用。
!includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/
然后把这个容器删掉
docker rm -f 4b1a0fe53315
创建一个mysql:5.7.9的容器,复制/etc/mysql/my.cnf
docker run -d -e MYSQL_ROOT_PASSWORD=root mysql:5.7.9
docker cp 4b1a0fe53315:/etc/mysql/my.cnf /mydata/mysql/conf/mysql.conf.d
然后把这个容器删掉
重新创建一个容器
docker run -p 3306:3307 --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
查看容器是否成功运行,如下图可以看到容器正常运行了,说明已经成功了。
docker ps
来源地址:https://blog.csdn.net/qq_45564783/article/details/126440171
--结束END--
本文标题: mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘ (Errcode: 2 - No such file or directory
本文链接: https://lsjlt.com/news/392605.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0