尝试连接到docker内的Postgres数据库但遇到以下问题:
文件“”,第1行,pyodbc.OperationalError:('08001','[08001]无法连接到服务器:没有这样的文件或目录\ n \ n服务器本地运行并接受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容器上暴露端口5432,否则您将无法连接。这些信息可以清除您的想法。 https://medium.com/@lvthillo/connect-from-local-machine-to-postgresql-docker-container-f785f00461a7
在您的docker-compose.yml上将其更改为以下内容:
db:
image: postgres
ports:
- 5432:5432
如果您已在本地计算机上安装了pg,则可以是5432或5435。
您的应用程序正在尝试通过host / tmp /文件夹中的unix套接字文件连接postgres。
因此,在postgres docker-compose文件中配置docker容器的挂载点,如下所示:
volumes:
- /tmp:/var/lib/postgresql
然后再次重建postgres容器。