SonarQube 8.5 的 PostgreSQL 连接失败
Posted
技术标签:
【中文标题】SonarQube 8.5 的 PostgreSQL 连接失败【英文标题】:PostgreSQL connection failure with SonarQube 8.5 【发布时间】:2021-02-19 05:44:33 【问题描述】:我已经在 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
自从我添加了数据库(名为“sonar”)连接后,它失败了,没有有用的日志。只有那些:
2020.11.06 13:47:16 WARN es[][o.e.d.c.s.Settings] [http.enabled] 设置在 Elasticsearch 中已弃用,并将在未来的版本中删除!请参阅下一个主要版本的重大更改文档。
2020.11.06 13:47:25 WARN app[][o.s.a.p.AbstractManagedProcess] 进程退出,退出值 [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"
注意:我一直在尝试使用 AND 不加密,作为 ROOT 用户和 POSTGRES 用户......但没有运气。
【问题讨论】:
“用户“sonar”的身份验证失败” - 你需要修复你的pg_hba.conf @a_horse_with_no_name 我不明白它有什么问题。另外,它是从以前的服务器中获取的。 @a_horse_with_no_name 抱歉,它必须位于其他地方吗?? 嗯,使用的 pg_hba.conf 显然不是您在问题中包含的那个,否则您不会收到该错误。如果您可以使用psql
以超级用户身份连接,那么您可以使用show hba_file;
查找正在使用的文件
@a_horse_with_no_name 非常感谢:根据这个有用的命令,预期的文件路径应该是 /var/lib/pgsql/9.6/data/pg_hba.conf!
【参考方案1】:
有关配置修复,请参阅上面的 cmets。首先,Centos OS 7 中 yum 的默认 PG 版本甚至都不对。
【讨论】:
以上是关于SonarQube 8.5 的 PostgreSQL 连接失败的主要内容,如果未能解决你的问题,请参考以下文章
PostgreSQ 连接问题 FATAL: no pg_hba.conf entry for host
SonarQube 插件和 SonarQube 规则之间有啥关系?