【问题标题】:Cannot connect to mysql and Django when using docker compose because of different socket location由于套接字位置不同,使用 docker compose 时无法连接到 mysql 和 Django
【发布时间】:2020-05-22 02:56:21
【问题描述】:

当运行 docker-compose up 时,django 容器会说

django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)”)

而 db 容器说

Version: '5.7.29' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)

由于套接字位置不同,它们似乎无法相互连接。我想知道是否可以更改套接字文件位置。

【问题讨论】:

  • 什么是django数据库配置和compose中的mysql服务名是什么?

标签: mysql django docker docker-compose


【解决方案1】:

如果您在不同的容器中运行应用程序和数据库,则默认情况下它们无法通过套接字相互连接。您必须使用带有主机和端口的数据库连接字符串,或者您必须以某种方式在这两个容器之间共享套接字文件。对我来说,第一个选项更容易。

可能是this is what you're looking for。在这种情况下,db host 将是来自 docker-compose.yml 的服务名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2018-06-07
    • 2021-06-16
    • 1970-01-01
    • 2017-07-05
    相关资源
    最近更新 更多