java - 连接到 Postgres 数据库失败

标签 java postgresql jdbc

我第一次尝试使用 JDBC 连接到本地数据库 (Postgres),但我似乎无法真正建立连接。这是我的代码:

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class JDBCExample {

    public static void main(String[] argv) {

        System.out.println("-------- PostgreSQL "
                + "JDBC Connection Testing ------------");

        try {

            Class.forName("org.postgresql.Driver");

        } catch (ClassNotFoundException e) {

            System.out.println("Where is your PostgreSQL JDBC Driver? "
                    + "Include in your library path!");
            e.printStackTrace();
            return;

        }

        System.out.println("PostgreSQL JDBC Driver Registered!");

        Connection connection = null;

        try {

            connection = DriverManager.getConnection(
                    "jdbc:postgresql://localhost:5432/training", "iam47662285",
                    "MY56KZDZ");

        } catch (SQLException e) {

            System.out.println("Connection Failed! Check output console");
            e.printStackTrace();
            return;

        }

        if (connection != null) {
            System.out.println("You made it, take control your database now!");
        } else {
            System.out.println("Failed to make connection!");
        }
    }

}

这是我尝试执行它时出现的错误:

-------- PostgreSQL JDBC Connection Testing ------------
PostgreSQL JDBC Driver Registered!
Connection Failed! Check output console
Nov 02, 2017 4:36:52 PM org.postgresql.Driver connect
SEVERE: Connection error: 
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "iam47662285"
    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:438)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:222)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:194)
    at org.postgresql.Driver.makeConnection(Driver.java:450)
    at org.postgresql.Driver.connect(Driver.java:252)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at UF2.Pruebas.BDR_BDOO.JDBCExample.main(JDBCExample.java:33)

org.postgresql.util.PSQLException: FATAL: password authentication failed for user "iam47662285"
    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:438)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:222)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:194)
    at org.postgresql.Driver.makeConnection(Driver.java:450)
    at org.postgresql.Driver.connect(Driver.java:252)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at UF2.Pruebas.BDR_BDOO.JDBCExample.main(JDBCExample.java:33)

我使用 Fedora,但我不知道这是否相关。任何人都知道为什么会发生这种情况?

最佳答案

您在以下代码中的用户名/密码不正确:

        connection = DriverManager.getConnection(
                "jdbc:postgresql://localhost:5432/training", "iam47662285",
                "MY56KZDZ");

手动登录 psql 并验证正确的用户名/密码是什么。如有必要,将 ALTER USER "xxxx"WITH PASSWORD ''; 更改为您会记住的新密码。

硬编码登录细节也是一个非常糟糕的主意。

关于java - 连接到 Postgres 数据库失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079262/

相关文章:

json - postgreSQL 如果不存在则添加带有值的新键,如果存在则对其进行编辑

mysql - 将 SQL 查询从 Postgres 移动到 MariaDB 时出错

jquery - Node js + 异步返回结果加入数据

java - JDBC 连接池错误

java - 从数据库中在java中显示时间戳值

java - 使用 Java 连接到 Oracle 集群

java - 具有事件调用类型的AWS lambda java

java - 在 Java 中用两个线程打印数字 1-20

java - 第三方以编程方式拥有的 Amazon S3 存储桶数据下载

java - Java运行时需要判断对象的类型。设计不好?