尝试连接到 postgres db Java 时出现 org.postgresql.util.PSQLException

时间:2021-08-01 17:10:09

标签: java postgresql docker jdbc

我有一个简单的 docker-compose.yml 文件

version: '2.2'
services:
  postgres-db:
    image: postgres:latest
    ports:
      - 5432:5432
    environment:
      - POSTGRES_USER=jdbc
      - POSTGRES_PASSWORD=pass

然后我通过 docker-compose up -d

运行我的数据库

转到服务器实例 docker exec -i myjava-app_postgres-db_1 psql -U jdbc 并创建数据库 CREATE DATABASE mydb

运行主类后,当我尝试测试数据库连接时

public class Main {

  private static final String POSTGRESQL_USER = "jdbc";
  private static final String POSTGRESQL_PASS = "pass";
  private static final String POSTGRESQL_URL = "jdbc:postgresql://localhost:5432" +
          "/mydb1?reWriteBatchedInserts=true";

  public static void main(String[] args) {
    Connection connection = getConnection();
  }

  private static Connection getConnection() {
    Connection connection = null;
    try {
      connection = DriverManager.getConnection(POSTGRESQL_URL, POSTGRESQL_USER, POSTGRESQL_PASS);
      if (connection != null) {
        System.out.println("Connection to server successfully");
      }
      else {
        System.out.println("Failed to make connection!");
      }
    } catch (SQLException throwables) {
      throwables.printStackTrace();
    }
    return connection;
  }
}

我得到了异常堆栈跟踪:

org.postgresql.util.PSQLException: ÔÀÒÀËÜÍÎ: êîðèñòóâà÷ "jdbc" íå ïðîéøîâ àâòåíòèô³êàö³þ çà äîïîìîãîþ ïàðîëÿ (pgjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf)
    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:613)
    at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:161)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:51)
    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:223)
    at org.postgresql.Driver.makeConnection(Driver.java:465)
    at org.postgresql.Driver.connect(Driver.java:264)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
    at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
    at Main.getConnection(Main.java:19)
    at Main.main(Main.java:13)

我尝试了不同的 docker-compose 配置,在 PgAdmin 等中检查了我的服务器

0 个答案:

没有答案