当我使用jdbc连接到postgresql数据库时,我遇到了问题。我从pgAdmin3网站上的软件包下载安装了postgresql 9.1(我需要gui)。我正在连接到db whith pgAdmin没有问题,但是当我尝试从java代码连接时,我发生了后续错误:
org.postggresql.util.PSQLException:致命:用户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);
}
}
答案 0 :(得分:1)
我已经解决了。只需在postgresql的URL上添加默认端口
即可答案 1 :(得分:0)
我在Play 2.2中得到了这个。味道略有不同
[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#!"