【发布时间】:2019-08-15 05:43:31
【问题描述】:
尝试连接到 docker 内的 Postgres 数据库但遇到以下问题:
文件“”,第 1 行,在 pyodbc.OperationalError: ('08001', '[08001] 无法连接到服务器:没有这样的文件或目录\n\tIs 服务器在本地运行并接受 Unix 域上的\n\t连接 套接字 "/tmp/.s.PGSQL.5432"?\n (101) (SQLDriverConnect)')
正在通过以下方式建立连接:
conn_str = ("DRIVER=/usr/local/lib/psqlodbcw.so;""DATABASE=mytestdb;""UID=postgres;""PWD=mysecretpassword""SERVER=localhost;""PORT=5432;");
conn = pyodbc.connect(conn_str)
【问题讨论】:
-
尝试连接到 docker 内部的 Postgres 数据库 尝试在 docker 实例内部或主机操作系统上连接的应用程序是什么?此外,在您的连接字符串上显示 localhost (
SERVER=localhost),您可能希望查看 docker 实例的 ip,否则设置 a NAT for the docker.. -
谢谢,我刚刚检查了容器 IP 是 172.17.0.2 并在代码上更改了它,但仍然遇到同样的问题。
-
主机是否与该 IP 具有相同的子网地址?像 172.17.0.1 这样的东西?如果你有 pgAdmin,你可能想先连接它。也只是一个旁注,你有任何第三方防病毒或防火墙吗?这也可能是您的主机无法与 docker 实例通信的原因。
标签: python postgresql docker pyodbc