Docker 数据库容器正在运行。另一个带有 pid 的进程正在使用 unix 套接字文件

2024-01-03

我正在尝试根据此消息中提供的说明运行带有初始化数据库的 docker mysql 容器https://stackoverflow.com/a/29150538/6086816 https://stackoverflow.com/a/29150538/6086816。第一次运行后工作正常,但在第二次运行时,尝试从脚本执行 /usr/sbin/mysqld 后,出现此错误:

db_1 | 2016-03-19T14:50:14.819377Z 0 [错误] pid 10 的另一个进程正在使用 unix 套接字文件。

db_1 | 2016-03-19T14:50:14.819498Z 0 [错误] 无法设置 unix 套接字锁定文件。

...

mdir_db_1 退出,代码为 1

这可能是什么原因?


我面临着同样的问题。以下是我尝试解决此问题的步骤 -

  • 首先,使用以下命令停止 docker 服务 - “sudo service docker stop”

  • 现在,使用以下路径进入我的 Linux 系统中的 docker 文件夹 - /var/lib/docker.

  • 然后在 docker 文件夹中,您需要进入volumes 文件夹。该文件夹包含所有容器的卷(每个容器的内存)- 光盘/卷

  • 进入卷后,执行“sudo ls”,您将发现多个带有哈希名称的文件夹。这些文件夹是容器的卷。每个文件夹都以其哈希值命名 (您需要检查您的 docker 容器并获取容器卷的哈希值。为此,您需要执行以下步骤 -

运行命令“docker检查'您的容器 ID' ".

现在您将获得一个 JSON 文件。它是 docker 容器的配置文件。

在此 JSON 文件中搜索 Mounts 键。在装载中,您将获得卷的名称(哈希)。 (您还将获得挂载中卷的路径。在挂载中,“名称”键是您的卷名称,“源”是您的卷所在的路径。))。

  • 获得卷的名称后,您可以进入卷文件夹,在此文件夹中您将找到“_data”文件夹。进入这个文件夹。

  • 最后在“_data”文件夹中使用 sudo ls 命令,您将找到一个名为 mysql.sock.lock 的文件夹。通过“rm -f mysql.sock.lock”删除该文件夹。

  • 现在重新启动 docker 服务,然后启动 docker 容器。它将开始工作。

Note-当您位于 docker 容器文件夹中时,请在每个命令中使用 sudo。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 数据库容器正在运行。另一个带有 pid 的进程正在使用 unix 套接字文件 的相关文章

随机推荐