如何从Java连接到我的Heroku PostgreSQL数据库
我有一个Heroku PostgreSQL数据库,无法从Java连接到该数据库。我尝试过不同的方法,但没有成功 下面是我的Java代码:如何从Java连接到我的Heroku PostgreSQL数据库,java,postgresql,heroku,Java,Postgresql,Heroku,我有一个Heroku PostgreSQL数据库,无法从Java连接到该数据库。我尝试过不同的方法,但没有成功 下面是我的Java代码: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class MainConfig { public static void main(String[] args) { try{
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MainConfig {
public static void main(String[] args) {
try{
dataSource();
System.out.println("conected");
}
catch(Exception ex){
ex.printStackTrace();
}
}
public static Connection dataSource() throws URISyntaxException, SQLException {
String ConnectionString ="jdbc:postgresql://l********n:cPd7VRjIhNVWOrZ4uWEeZWKYqV@ec2-184-73-251-115.compute-1.amazonaws.com:5432/dac36a93ohuvsd";
String username = "****";
String password = "***";
return DriverManager.getConnection(ConnectionString, username, password);
}
}
我在控制台中遇到的错误是:
> org.postgresql.util.PSQLException: The connection attempt failed.
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:233)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:144)
at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)
at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
at org.postgresql.Driver.makeConnection(Driver.java:410)
at org.postgresql.Driver.connect(Driver.java:280)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at MainConfig.dataSource(MainConfig.java:34)
at MainConfig.main(MainConfig.java:14)
Caused by: java.net.UnknownHostException: lxlrnhejlzmyun:cPd7VRjIhNVWOrZ4uWEeZWKYqV@ec2-184-73-251-115.compute-1.amazonaws.com
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.postgresql.core.PGStream.<init>(PGStream.java:61)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:109)
... 12 more
错误
>java.lang.NullPointerException
位于java.net.URI$Parser.parse(未知源)
位于java.net.URI。(未知源)
位于MainConfig.dataSource(MainConfig.java:23)
在MainConfig.main(MainConfig.java:14)
我做错了什么?格式应该是:
jdbc:postgresql://host:port/database
,
而在您的代码中,它是,请注意两个“:”
jdbc:postgresql://l**********n:cPd7VRjIhNVWOrZ4uWEeZWKYqV@ec2-184-73-251-115.compute-1.amazonaws.com:5432/dac36a93ohuvsd“
格式应为:jdbc:postgresql://host:port/database
,
而在您的代码中,它是,请注意两个“:”
jdbc:postgresql://l**********n:cPd7VRjIhNVWOrZ4uWEeZWKYqV@ec2-184-73-251-115.compute-1.amazonaws.com:5432/dac36a93ohuvsd“
要连接到heroku的PostgreSQL(使用所需的ssl),必须将以下内容附加到url:
?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
因此,上述答案中提供的正确url为:
jdbc:postgresql://host:port/database?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
如果没有这些周长,您将得到描述的错误:
error: no pg_hba.conf entry for host
为了连接到heroku的PostgreSQL(使用所需的ssl),必须将以下内容附加到url:
?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
因此,上述答案中提供的正确url为:
jdbc:postgresql://host:port/database?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
如果没有这些周长,您将得到描述的错误:
error: no pg_hba.conf entry for host
您的url应该类似-jdbc:postgresql://hostname:port/dbname?sslmode=require 复制heroku站点中提到的主机名(主机)端口和数据库名(数据库)
别忘了在你的url中附加?sslmode=require,否则你将无法连接你的url看起来应该像-jdbc:postgresql://hostname:port/dbname?sslmode=require 复制heroku站点中提到的主机名(主机)端口和数据库名(数据库)
别忘了在url中附加?sslmode=require,否则您将无法连接,原因是:java.net.UnknownHostException:lxlnhejlzmyn:cPd7VRjIhNVWOrZ4uWEeZWKYqV@ec2-184-73-251-115.compute-1.amazonaws.com。您是否验证了主机详细信息?可能重复的原因是:java.net.UnknownHostException:lxlrnhjlzmyn:cPd7VRjIhNVWOrZ4uWEeZWKYqV@ec2-184-73-251-115.compute-1.amazonaws.com。您是否验证了主机详细信息?可能与Thank u重复,我修改了连接字符串,现在我发现错误:主机“92.82.172.24”、用户“”和数据库“”没有pg_hba.conf条目。我提到我已经将该行插入pg**.conf并重新启动了系统#TYPE数据库用户地址方法#IPv4本地连接:host all************/32 md5 host*************************************92.82.172.24/32md5@SocketM检查此-->谢谢你,我放弃了希罗库。我不明白如何将SSL设置为true。我将使用我的本地数据库,并使用SQL查询导入到另一个站点。谢谢,我修改了连接字符串,现在我得到了错误:主机“92.82.172.24”、用户“”和数据库“”没有pg_hba.conf条目。我提到我已经将该行插入pg**.conf并重新启动了系统#TYPE数据库用户地址方法#IPv4本地连接:host all************/32 md5 host*************************************92.82.172.24/32md5@SocketM检查此-->谢谢你,我放弃了希罗库。我不明白如何将SSL设置为true。我将使用本地数据库,并使用SQL查询导入到另一个站点。