【问题标题】:org.postgresql.util.PSQLException: The connection attempt failed. Caused by: java.net.UnknownHostExceptionorg.postgresql.util.PSQLException:连接尝试失败。引起:java.net.UnknownHostException
【发布时间】:2022-08-19 03:19:43
【问题描述】:

我正在尝试在 Android java 中从 Heroku(DB 由 amazon aws)连接到 postgresql

在我的主机 url 地址是这样的

postgres://username:password@host:port/database

但是使用 jdbc connect 我正在使用

jdbc:postgresql://username:password@host:port/database

我不确定这是否是问题所在,因为我找不到任何 gradle 依赖项

这是我的 build.gradle implementation group: \'org.postgresql\', name: \'postgresql\', version: \'42.4.0\'

这是我的 Java 代码

    private String url = \"jdbc:postgresql://username:password@host:port/database\";
private Connection connection;
private void connect() {
    try {
        DriverManager.registerDriver(new org.postgresql.Driver());
        connection = DriverManager.getConnection(url);
    } catch (Exception e) {
        System.out.print(e.getMessage());
        e.printStackTrace();
    }
}

当我运行程序时出现此错误

W/System.err: org.postgresql.util.PSQLException: The connection attempt failed.
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:331)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:223)
    at org.postgresql.Driver.makeConnection(Driver.java:402)
    at org.postgresql.Driver.connect(Driver.java:261)
    W/System.err:     at java.sql.DriverManager.getConnection(DriverManager.java:580)
    at java.sql.DriverManager.getConnection(DriverManager.java:236)
    at com.example.myapplication.Database$1.run(Database.java:33)
    at java.lang.Thread.run(Thread.java:929)
Caused by: java.net.UnknownHostException: username:password@host
    W/System.err:     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:208)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
    at java.net.Socket.connect(Socket.java:621)
    at org.postgresql.core.PGStream.createSocket(PGStream.java:241)
    at org.postgresql.core.PGStream.<init>(PGStream.java:98)
    at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:109)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:235)
    ... 8 more

谁能帮我解决这个问题?

    标签: java android postgresql heroku heroku-postgres


    【解决方案1】:

    url : url = "jdbc:postgresql://username:password@host:port/database" 不正确。 正确的格式是: jdbc:postgresql://{host}[:{port}]/[{database}] 您可以使用:

        private String url = "jdbc:postgresql://host:port/database";
    private Connection connection;
    private void connect() {
        try {
            DriverManager.registerDriver(new org.postgresql.Driver());
            connection = DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            System.out.print(e.getMessage());
            e.printStackTrace();
        }
    }
    

    【讨论】:

    • 没用!同样的错误
    【解决方案2】:

    我找不到任何解决方案,因为我正在开发 Android 应用程序,所以我最好的选择是切换到 Firebase 数据库、性能、安全性,firebase 上的一切都很棒,它也从谷歌免费获得,这解决了我的问题.

    【讨论】:

      猜你喜欢
      • 2013-03-26
      • 2020-08-21
      • 2021-05-25
      • 2015-02-19
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多