我有一个简单的 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 等中检查了我的服务器