2

我的应用程序尝试使用 Jdbc 驱动程序版本连接到 PostgreSQL 时遇到一个奇怪的问题:8.4-702.jdbc4

似乎找不到它所在的 persistence.xml 中定义的数据库。

错误:

[INFO] Caused by: org.postgresql.util.PSQLException: FATAL: database "mydb" does not exist
[INFO]  at org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:464)
[INFO]  at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:112)
[INFO]  at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
[INFO]  at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125)
[INFO]  at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
[INFO]  at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
[INFO]  at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:30)
[INFO]  at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
[INFO]  at org.postgresql.Driver.makeConnection(Driver.java:393)
[INFO]  at org.postgresql.Driver.connect(Driver.java:267)
[INFO]  at java.sql.DriverManager.getConnection(DriverManager.java:579)
[INFO]  at java.sql.DriverManager.getConnection(DriverManager.java:221)
[INFO]  at org.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:89)
[INFO]  at org.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:72)
[INFO]  at org.apache.shiro.realm.jdbc.JdbcRealm.doGetAuthenticationInfo(JdbcRealm.java:215

但是,我可以在 shell 中做到这一点而不会出现问题:

$ psql -U postgres -h 192.168.145.128

持久性.xml

  <properties>
     <property name="hibernate.hbm2ddl.auto" value="update"/>
     <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://192.168.145.128:5432/mydb" />
     <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
     <property name="javax.persistence.jdbc.user" value="postgres" /> 
     <property name="javax.persistence.jdbc.password" value="postgres" /> 
  </properties>

可能是什么问题呢?

4

1 回答 1

0

就我而言,这是因为提供了错误的用户名和密码。

于 2013-12-26T12:18:02.553 回答