首页 > 解决方案 > SonarQube 8.5 的 PostgreSQL 连接失败

问题描述

我已经在 CentOS 7 系统上安装了 SonarQube 8.5,它在我设置 PostgreSQL 9.6 连接(然后是嵌入式数据库)之前启动。所以我继续前进:

sonar.jdbc.username=sonar
sonar.jdbc.password=####
...
sonar.jdbc.url=jdbc:postgresql://localhost/sonar

这就是我的 /var/lib/pgsql/data/pg_hba.conf

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

由于我添加了数据库(名为“声纳”)连接,它失败了,没有有用的日志。只有那些:

2020.11.06 13:47:16 WARN es[][oedcsSettings] [http.enabled] 设置在 Elasticsearch 中已弃用,并将在未来的版本中删除!请参阅下一个主要版本的重大更改文档。

2020.11.06 13:47:25 WARN app[][osapAbstractManagedProcess] 进程以退出值 [es] 退出:143

2020.11.06 13:47:24 WARN web[][oaclWebappClassLoaderBase] Web 应用程序 [ROOT] 似乎已经启动了一个名为 [elasticsearch[ client ][[timer]]] 的线程,但未能停止它。这很可能造成内存泄漏。线程堆栈跟踪:\n java.base@11.0.8/java.lang.Thread.sleep(Native Method)\n app//org.elasticsearch.threadpool.ThreadPool$CachedTimeThread.run(ThreadPool.java:574)

所以我尝试在这里修复和测试数据库帐户:

ALTER USER sonar WITH ENCRYPTED PASSWORD '####';
ALTER ROLE
...
psql -d "postgresql://sonar:####@localhost/sonar" -c "select now()"
psql: FATAL:  Ident authentication failed for user "sonar"

注意:作为 ROOT 用户和 POSTGRES 用户,我一直在尝试使用 AND 不加密......但没有运气。

标签: postgresqljdbccontinuous-integrationsonarqubemd5

解决方案


有关配置修复,请参阅上面的评论。首先,Centos OS 7 中 yum 的默认 PG 版本甚至都不正确。


推荐阅读