使用 dockerfile/mysql mysqld_safe mysqld from pid file 错误
Posted
技术标签:
【中文标题】使用 dockerfile/mysql mysqld_safe mysqld from pid file 错误【英文标题】:Use dockerfile/mysql mysqld_safe mysqld from pid file error 【发布时间】:2015-05-14 01:33:58 【问题描述】:以下docker run
命令导致意外错误。
docker run --name mysql -d -v /data/mysql:/var/lib/mysql dockerfile/mysql
错误:150311 07:36:04 mysqld_safe 启动 mysqld 守护进程 数据库来自 /var/lib/mysql 150311 07:36:04 mysqld_safe mysqld 来自 pid 文件 /var/run/mysqld/mysqld.pid 结束
我该如何解决?
【问题讨论】:
不指定-v
参数是否有效?
不指定-v参数效果很好
【参考方案1】:
如果它不是用于生产环境并且仅用于本地测试,那么让它运行的最简单方法是
sudo chmod -R 777 /data/mysql
这个命令基本上是给所有用户对mysql文件夹的读写权限。
如果这对您有用,请告诉我们。
【讨论】:
请去看看/data/mysql里面有没有文件。 如果不存在则表示挂载不正确。一个好的方法是使用官方mysql存储库registry.hub.docker.com/_/mysql。我一直在使用这个官方存储库,它在挂载点上运行良好(即 -v 选项)【参考方案2】:/data/mysql
文件夹权限错误,导致容器内mysql用户无法写入该目录。要解决此问题,您可以在容器中找到 mysql 用户的 uid 并授予其访问目录的权限,或者使用数据容器。
要查找 uid,请运行:
docker run dockerfile/mysql id -u mysql
然后您可以执行sudo chown ID /data/mysql
(其中 id 是 UID)之类的操作来授予 mysql 用户访问权限。
要设置数据容器,请参阅the official docs.
【讨论】:
我尝试使用第一种方式,失败了以上是关于使用 dockerfile/mysql mysqld_safe mysqld from pid file 错误的主要内容,如果未能解决你的问题,请参考以下文章