gpt4 book ai didi

mysql - 通过 Maven 的 SonarQube 分析失败,MySQL 的数据库访问被拒绝

转载 作者:行者123 更新时间:2023-11-29 22:54:21 25 4
gpt4 key购买 nike

我的 MySQL、SonarQube 和 TeamCity 实例都在同一 Linux 主机上运行。所有都是非常普通的安装(开箱即用/不安全/本地/在公司防火墙后面)。

这些是我的 Maven 设置...其中 ${completeQualifiedDomainName} 类似于 build.company.com

<profile>
<id>env-dev</id>

<properties>
<downloadSources>true</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
<sonar.jdbc.url>jdbc:mysql://${fullyQualifiedDomainName}:3306/sonar?useUnicode=true&amp;characterEncoding=utf8</sonar.jdbc.url>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://${fullyQualifiedDomainName}:9000</sonar.host.url>
</properties>

<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>

我运行命令 mvn sonar:sonar 来执行并上传 SonarQube 分析。

上面的 Maven 设置在我的 Windows PC 上工作正常。但是,如果我通过 TeamCity 从 Linux 服务器运行,我会看到以下错误:(giant Java stacktrace + ...):

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project IMQuant: 
Fail to connect to database:
Cannot create PoolableConnectionFactory
(Access denied for user 'sonar'@'${fullyQualifiedDomainName}'
(using password: YES)) -> [Help 1]

如果我在 Maven 设置中切换到使用 localhost,它在 Linux 服务器上运行正常。我猜这是以下问题之一:

  1. MySQL 配置(我是 MySQL 新手)
  2. Linux 服务器配置(网络配置/管理内容超出我的控制范围)
  3. MySQL JDBC 驱动程序错误(localhost != 来自 localhost 的 fqdn)

现在,我在 TeamCity/Linux 的设置中使用第二个 Maven 配置文件和 localhost

这个问题有解决办法吗?有人见过这个问题吗?

更新

以下是为 SonarQube 创建 MySQL 数据库的命令。正如@Mithfindel 所指出的,这可能是根本原因。

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;

引用号:https://github.com/SonarSource/sonar-examples/blob/master/scripts/database/mysql/create_database.sql

最佳答案

这看起来像是 MySQL 配置问题:对于 MySQL,本地主机上的 GRANT 与本地主机 FQDN 上的 GRANT 不同。您可能想检查向用户 'sonar'@'localhost''sonar'@'fqdn-of-localhost''sonar 授予了哪些权限'@'%'

关于mysql - 通过 Maven 的 SonarQube 分析失败,MySQL 的数据库访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28782900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com