为 Docker 容器中的 PostgreSQL 数据库更正 JDBC 连接 URL
Correct JDBC Connection URL for a PostgreSQL DB in a Docker Container
我正在使用 Gitpod 云 IDE,它使用 Docker 图片 来提供一个不错的 linux环境与VSCodeIDE.
可以在 Gitpod 中使用 Docker 文件 在环境中安装其他软件。因此,通过遵循 Gitpod 文档,我安装了 PostgreSQL.
https://medium.com/gitpod/bring-your-own-docker-image-to-gitpod-52db1aa861de
我现在可以使用此命令连接到 PostgreSQL。 请注意,我必须提供套接字文件夹才能使其正常工作。
psql -h ~/pg/sockets postgres
我有一个 spring 引导应用程序,它应该连接到 PostgreSQL DB。连接 URL 取自环境变量。
export JDBC_DATABASE_URL=jdbc:postgresql://gitpod@127.0.0.1/postgres
这就是我的 属性文件 。
spring.datasource.url=${JDBC_DATABASE_URL}
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.driverClassName=org.postgresql.Driver
spring.jpa.show-sql=false
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.datasource.maxActive=10
spring.datasource.maxIdle=5
spring.datasource.minIdle=2
spring.datasource.initialSize=5
spring.datasource.removeAbandoned=true
这是我在 运行 \du 上 psql 列出用户时得到的结果。
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
gitpod | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
登录此linux环境的Gitpod用户名为gitpod。 (我不知道密码)
当我运行命令netstat -plunt | grep postgres 我得到以下输出
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 955/postgres
但是当我 运行 我的应用程序抛出以下异常时
Caused by: java.net.UnknownHostException: gitpod@127.0.0.1
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[na:1.8.0_202]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_202]
at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_202]
at org.postgresql.core.PGStream.<init>(PGStream.java:75) ~[postgresql-42.2.6.jar!/:42.2.6]
at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:91) ~[postgresql-42.2.6.jar!/:42.2.6]
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192) ~[postgresql-42.2.6.jar!/:42.2.6]
... 56 common frames omitted
我觉得应该是连接的问题URL。有人可以向我解释如何让它工作吗?
非常感谢您的帮助。
谢谢。
在 gitpod 社区的帮助下,我设法让这个在 gitpod 中工作。
使用本文档中描述的 gitpod 团队预构建的 postgres docker 映像来安装 postgreSQL。
https://www.gitpod.io/blog/gitpodify/#postgresql
然后我将 URL 更改为以下
export JDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/postgres?user=gitpod
我正在使用 Gitpod 云 IDE,它使用 Docker 图片 来提供一个不错的 linux环境与VSCodeIDE.
可以在 Gitpod 中使用 Docker 文件 在环境中安装其他软件。因此,通过遵循 Gitpod 文档,我安装了 PostgreSQL.
https://medium.com/gitpod/bring-your-own-docker-image-to-gitpod-52db1aa861de
我现在可以使用此命令连接到 PostgreSQL。 请注意,我必须提供套接字文件夹才能使其正常工作。
psql -h ~/pg/sockets postgres
我有一个 spring 引导应用程序,它应该连接到 PostgreSQL DB。连接 URL 取自环境变量。
export JDBC_DATABASE_URL=jdbc:postgresql://gitpod@127.0.0.1/postgres
这就是我的 属性文件 。
spring.datasource.url=${JDBC_DATABASE_URL}
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.driverClassName=org.postgresql.Driver
spring.jpa.show-sql=false
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.datasource.maxActive=10
spring.datasource.maxIdle=5
spring.datasource.minIdle=2
spring.datasource.initialSize=5
spring.datasource.removeAbandoned=true
这是我在 运行 \du 上 psql 列出用户时得到的结果。
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
gitpod | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
登录此linux环境的Gitpod用户名为gitpod。 (我不知道密码)
当我运行命令netstat -plunt | grep postgres 我得到以下输出
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 955/postgres
但是当我 运行 我的应用程序抛出以下异常时
Caused by: java.net.UnknownHostException: gitpod@127.0.0.1
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) ~[na:1.8.0_202]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_202]
at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_202]
at org.postgresql.core.PGStream.<init>(PGStream.java:75) ~[postgresql-42.2.6.jar!/:42.2.6]
at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:91) ~[postgresql-42.2.6.jar!/:42.2.6]
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192) ~[postgresql-42.2.6.jar!/:42.2.6]
... 56 common frames omitted
我觉得应该是连接的问题URL。有人可以向我解释如何让它工作吗?
非常感谢您的帮助。 谢谢。
在 gitpod 社区的帮助下,我设法让这个在 gitpod 中工作。
使用本文档中描述的 gitpod 团队预构建的 postgres docker 映像来安装 postgreSQL。 https://www.gitpod.io/blog/gitpodify/#postgresql
然后我将 URL 更改为以下
export JDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/postgres?user=gitpod