You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SonarQube启动后5秒自动停止,数据库连接被拒绝求助

SonarQube启动5秒后自动停止的问题解决指南

嘿,从你给出的日志片段里的Cannot create PoolableConnectionFactory (Connection refused)能直接看出来,SonarQube启动失败的核心原因是无法连接到PostgreSQL数据库,这也是它刚启动就闪退的根源。下面是一步步的排查和修复步骤:

  • 先确认PostgreSQL服务是否在运行
    首先得确保你的PostgreSQL数据库本身是正常启动的。如果是Linux系统,用这个命令检查状态:
    systemctl status postgresql
    如果显示服务没在运行,先启动它:
    systemctl start postgresql
    要是你用的是其他初始化系统,比如sysvinit,就用service postgresql status和service postgresql start来操作。

  • 检查PostgreSQL是否允许TCP/IP连接
    默认情况下,PostgreSQL可能只允许本地套接字连接,不接受TCP请求。你需要修改它的配置文件:
    找到postgresql.conf(通常路径是/etc/postgresql/<你的PostgreSQL版本>/main/或者/var/lib/postgresql/<版本>/main/),找到listen_addresses这一行,把它改成:
    listen_addresses = '*'
    这样就允许所有IP的TCP连接了,如果你只想让SonarQube所在服务器访问,也可以换成对应的IP地址。修改完记得重启PostgreSQL服务生效。

  • 核对SonarQube的数据库连接配置
    打开SonarQube目录下的conf/sonar.properties文件,找到sonar.jdbc.url这一项,确保里面的主机地址、端口号和数据库名都是正确的。举个正确的配置例子:
    sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
    这里要注意:

    • localhost如果是远程数据库,要换成数据库服务器的IP
    • 端口5432是PostgreSQL默认端口,如果你改了端口号要对应上
    • sonarqube这个数据库名必须是已经提前创建好的
  • 验证数据库用户的权限和密码
    同样在sonar.properties里,检查sonar.jdbc.username和sonar.jdbc.password是否正确。你可以用psql命令手动测试连接:
    psql -U <配置里的用户名> -d sonarqube -h <数据库主机>
    如果输入密码后连不上,要么是密码错了,要么是这个用户没有访问sonarqube数据库的权限,你需要给用户赋权或者重置密码。

  • 排查防火墙/安全组限制
    如果SonarQube和PostgreSQL不在同一台服务器,一定要检查两者之间的防火墙或者云服务商的安全组,有没有开放PostgreSQL的默认端口5432,允许SonarQube服务器的IP地址访问。

内容的提问来源于stack exchange,提问作者Surmeet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:02:11