我尝试了几个可以上手的教程,但它们都导致了相同的错误:
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。
将
JDBC
更改为jdbc
,区分大小写。
我发现自己又回到了这个问题,我认为值得放弃一个答案,这样它可以指导其他人。
但是,还有其他原因将
JDBC
更改为 jdbc
可能实际上无法为您解决此错误,这是因为 psql 凭据(例如 POSTGRES_USER、POSTGRES_DB 和 POSTGRES_PASSWORD)可能完全错误,而这正是我自己的情况没有联系的原因。
因此,为了解决这个问题,我的建议是配置您的
.pgpass
文件,该文件存储 PostgresSQL 连接的凭据,以避免出现 Database error :No suitable driver found for jdbc:postgresql://localhost:5432/.....
提示。让我们开始吧。
记下您为数据库创建的凭据*:
我创建了一个伪示例,我们将在下面遵循它。
# 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
编辑您的
.pgpass
文件:
打开终端并输入
nano ~/.pgpass
。
nano
、vi
等都是文本编辑器,相信你的系统可能有。如果您没有,请安装它并了解如何创建文件并使用这些编辑器保存它,然后再继续。这将帮助您编辑或创建 .pgpass 文件,您可以添加必要的配置。
添加您的数据库条目:
请以这种格式将您的条目添加到文件中
localhost:5432:your_database_name:your_username:your_password
。因此,根据我在第 1 项中创建的虚假凭据,您的 .pgpass 文件中将包含类似的内容
本地主机:5432:capital_one:postgres:postgres
输入正确的条目后,请保存您的条目并退出。如果您不知道如何操作,请参阅此https://askubuntu.com/a/477606
设置权限
在终端输入
chmod 600 ~/.pgpass
测试您的连接
在您的终端中,输入
psql -h localhost -d your_database_name -U your_username
。
不要忘记提供您使用的凭据。对于上面我的虚假/伪凭证,它将是
psql -h localhost -d capital_one -U postgres
,然后按 Enter。
现在,对于某些使用 Intelllj IDE 的人来说,在应用连接之前通过文本发送连接也很容易。见下图: