我有春季网络应用程序,我正在尝试与postgress连接。 这是数据库连接属性
datasource.driver=org.postgresql.Driver
datasource.url=jdbc:postgresql://localhost:5432/sampleDb
datasource.username=postgres
datasource.password=postgres
这是应用程序上下文
<bean id="appDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>${datasource.driver}</value>
</property>
<property name="url">
<value>${datasource.url}</value>
</property>
<property name="username">
<value>${datasource.username}</value>
</property>
<property name="password">
<value>${datasource.password}</value>
</property>
</bean>
当我启动应用程序时,会收到错误信息。
Cannot create PoolableConnectionFactory (Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
为什么会发生这种情况?
我从另一台机器恢复了这个数据库。我不知道他们在那个sql文件中写了什么。该sql转储文件中有一个代码。
REVOKE ALL ON TABLE workflow_type FROM PUBLIC;
REVOKE ALL ON TABLE workflow_type FROM postgres;
GRANT ALL ON TABLE workflow_type TO postgres;
GRANT SELECT,INSERT,DELETE,REFERENCES,UPDATE ON TABLE workflow_type TO user1;
这是否因为此查询而发生?
答案 0 :(得分:0)
你以前尝试在命令行下连接psql吗?它只是为了测试你的pg_hba.conf是否正常。
如果你不能与psql连接。打开你的pg_hba.conf文件,如果你在本地计算机上,用信任替换md5就可以得到类似的东西:
local all all trust
这允许每个人连接到你的postgres服务器。 用psql命令行重试连接。
如果有效,请重试启动服务器以查看spring现在是否可以连接到db。
答案 1 :(得分:0)
你的Postgres是否在localhost:5432上启动并运行?您是否可以通过命令行连接到数据库(例如psql <dbname> -h localhost -U <username> -W
)?