2012-04-08 115 views
0

我有一个问题,当我连接到使用JDBC PostgreSQL数据库。我已经从pgAdmin3网站上的软件包下载安装了postgresql 9.1(我需要gui)。我连接到DB蒙山pgAdmin的,没有任何问题,但是当我试图从Java代码连接,我已经相继式的错误:JDBC + Postgres的连接问题

org.postggresql.util.PSQLException: FATAL: password authentication failed for user postgres

抛出异常的代码是

public class ConnectionManager { 
    private ConnectionManager(){}; 
    private static boolean driverLoad = false; 
    private static final String pgDriver="org.postgresql.Driver"; 
    private static final String pgUrl="jdbc:postgresql:coffeeDB"; 
    private static final String usr="postgres"; 
    private static final String psw="password"; 

    public static Connection getConnection() throws ClassNotFoundException, SQLException { 
     if(!driverLoad) { 
      Class.forName(pgDriver); 
      driverLoad=true; 
     } 
     return DriverManager.getConnection(pgUrl, usr, psw); 
    } 
} 
+2

显然你已经提供了错误的密码。顺便说一句:你应该使用的网址:'JDBC:在PostgreSQL://服务器/ coffeeDB'其中服务器是运行PostgreSQL的计算机的名称。如果它在同一台机器上,也可以使用'localhost'。 – 2012-04-08 18:12:14

+0

我已经尝试做到这一点,但它不起作用。密码是正确的,因为是我使用的pgAdmin的GUI连接到我已经解决了DB – giozh 2012-04-08 18:16:58

+0

相同。该网址需要同时指定端口 – giozh 2012-04-08 18:31:36

回答

1

我解决了。只需添加PostgreSQL的

0

我在玩2.2获取此的URL的默认端口。略有不同的味道

[error]c.j.b.h.AbstractConnectionHook - Failed to obtain initial connection Sleeping for 0ms and trying again. Attempts left: 0. Exception: null.Message:FATAL: password authentication failed for user "root" 

问题是围绕在application.conf中的URL引号。如果有特殊字符,引号都需要

失败的定位思路

db.default.url=jdbc:postgresql://myMachine:5432/mydb 

作品

db.default.url="jdbc:postgresql://myMachine:5432/mydb" 

也是一样的密码

失败

Passw)rd#! 

"Passw)rd#!"