未找到适合 jdbc 的驱动程序:postgresql://localhost:5432/postgres

问题描述 投票:0回答:2

我尝试了几个可以上手的教程,但它们都导致了相同的错误:

18:28:24,583 INFO [stdout](默认任务-1)数据库错误:找不到适合 JDBC 的驱动程序:postgresql://localhost:5432/postgres

我已按照本教程配置了连接:如何使用 WILDFLY 设置 POSTGRESQL 数据源

并尝试了多种方法来解决问题。我已经尝试了管理控制台和配置文件。最常见的解决方案是尝试将 postgresql-42.2.24.jar 添加到模块中的项目结构中,但这并不能解决问题。我创建了一个新的简单Java项目,我只是尝试连接到数据库并且它可以工作(我在两个地方使用相同的凭据),但是当我尝试将服务器与数据库链接时,它就像没有'看不到驱动程序...从 Intellij 添加数据源时,它工作得很好(它可以看到表,我可以运行查询和所有内容),但我无法与服务器建立连接。 我正在使用 Wildfly 24.0.1 Final 和 Java 8。

java postgresql jdbc wildfly
2个回答
1
投票

JDBC
更改为
jdbc
,区分大小写。


0
投票

我发现自己又回到了这个问题,我认为值得放弃一个答案,这样它可以指导其他人。

  1. 闻到脸上的第一件事是区分大小写 JDBC。这里的其他答案已经建议您更改为较低 情况如此,所以我就这样吧。

但是,还有其他原因将

JDBC
更改为
jdbc
可能实际上无法为您解决此错误,这是因为 psql 凭据(例如 POSTGRES_USER、POSTGRES_DB 和 POSTGRES_PASSWORD)可能完全错误,而这正是我自己的情况没有联系的原因。

因此,为了解决这个问题,我的建议是配置您的

.pgpass
文件,该文件存储 PostgresSQL 连接的凭据,以避免出现
Database error :No suitable driver found for jdbc:postgresql://localhost:5432/.....
提示。让我们开始吧。

  1. 记下您为数据库创建的凭据*:

    我创建了一个伪示例,我们将在下面遵循它。

    # Example
    
    POSTGRES_HOST=your_host
    POSTGRES_PORT=your_port
    POSTGRES_DB=your_database_name
    POSTGRES_USER=your_user
    POSTGRES_PASSWORD=your_password
    
    # So, I will fill these items above with a pseudo credential below.
    # These false credentials is what I will use to explain how to fix it.
    
    POSTGRES_HOST=postgres
    POSTGRES_PORT=5432
    POSTGRES_DB=capital_one
    POSTGRES_USER=postgres
    POSTGRES_PASSWORD=postgres
    
  2. 编辑您的

    .pgpass
    文件

    打开终端并输入

    nano ~/.pgpass

    nano
    vi
    等都是文本编辑器,相信你的系统可能有。如果您没有,请安装它并了解如何创建文件并使用这些编辑器保存它,然后再继续。这将帮助您编辑或创建 .pgpass 文件,您可以添加必要的配置。

  3. 添加您的数据库条目

    请以这种格式将您的条目添加到文件中

    localhost:5432:your_database_name:your_username:your_password
    。因此,根据我在第 1 项中创建的虚假凭据,您的 .pgpass 文件中将包含类似的内容

    本地主机:5432:capital_one:postgres:postgres

    输入正确的条目后,请保存您的条目并退出。如果您不知道如何操作,请参阅此https://askubuntu.com/a/477606

  4. 设置权限

    在终端输入

    chmod 600 ~/.pgpass

  5. 测试您的连接

    在您的终端中,输入

    psql -h localhost -d your_database_name -U your_username

    不要忘记提供您使用的凭据。对于上面我的虚假/伪凭证,它将是

    psql -h localhost -d capital_one -U postgres
    ,然后按 Enter。

现在,对于某些使用 Intelllj IDE 的人来说,在应用连接之前通过文本发送连接也很容易。见下图:

Setting connection on Intellj IDE

© www.soinside.com 2019 - 2024. All rights reserved.