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

Docker部署SonarQube:如何执行SQL重置Admin密码?

如何在SonarQube Docker容器中执行SQL重置Admin密码

我来帮你理清这个问题——在SonarQube Docker环境下重置Admin密码,关键要看你用的是默认内置H2数据库还是外部数据库(如MySQL/PostgreSQL),两种情况的操作路径完全不同:

情况1:使用SonarQube默认的内置H2数据库

SonarQube官方镜像自带了H2数据库的命令行工具,你不需要额外安装客户端,步骤如下:

  1. 先进入运行中的SonarQube容器:
    docker exec -it <你的SonarQube容器ID/名称> bash
    
  2. 启动H2的命令行Shell工具(容器里已经预装了Java,直接运行即可):
    java -cp $SONARQUBE_HOME/lib/h2-*.jar org.h2.tools.Shell
    
  3. 按照提示输入连接信息:
    • JDBC URL:输入 jdbc:h2:file:$SONARQUBE_HOME/data/sonar(这是默认H2数据库文件的路径)
    • User:默认是 sonar
    • Password:默认也是 sonar
  4. 连接成功后,直接执行你提到的SQL语句重置密码:
    update users set crypted_password = '88c991e39bb88b94178123a849606905ebf440f5', salt='6522f3c5007ae910ad690bb1bdbf264a34884c6d' where login = 'admin';
    
  5. 执行完成后输入exit退出H2 Shell,然后重启SonarQube容器使修改生效:
    docker restart <你的SonarQube容器ID/名称>
    
    之后你就可以用admin/admin登录SonarQube了。

情况2:使用外部数据库(MySQL/PostgreSQL等)

如果你的SonarQube配置了外部数据库,那根本不需要在容器里操作,直接连接到你的外部数据库服务器执行SQL即可:

  • 如果你用的是MySQL:用mysql客户端连接到数据库主机,登录SonarQube对应的数据库(默认库名是sonar),然后执行上述SQL语句。
  • 如果你用的是PostgreSQL:用psql客户端连接到数据库,进入SonarQube的数据库后执行SQL。

小提示

如果你不确定自己用的是哪种数据库,可以查看容器内的SonarQube配置文件:

cat $SONARQUBE_HOME/conf/sonar.properties

找到sonar.jdbc.url配置项,里面会明确显示数据库类型和连接地址(比如jdbc:h2:...就是内置H2,jdbc:mysql:...就是外部MySQL)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:48:50