为什么SonarQube分析器无法与Mysql建立连接,权限问题?

时间:2015-06-30 09:06:46

标签: mysql ant sonarqube

MySQL版本:5.6.25(64位Linux)。 Ant版本:1.9.5。 Sonarqube版本:5.1.1。 我在运行我的蚂蚁脚本时遇到了权限问题。比如:

  

org.sonar.runner.impl.RunnerException:无法执行Sonar   ...   ..   由java.lang.IllegalStateException引起:无法连接到数据库....   ...由org.apache.dbcp.SQLNestedException引起:无法创建PoolableConnectionFactory(访问被拒绝用户'sonarqube'@'localhost'(使用密码:YES))

在昨天下午谷歌搜索并尝试以root用户身份登录MySQL并为我的sonarqube用户和类似的东西调用GRANT ALL之后,我完全不知道接下来要尝试什么。我遇到过这篇文章: http://sonarqube.15.x6.nabble.com/com-mysql-jdbc-Driver-is-not-found-td5012081.html,特别是这一点:

  

“Sonar使用其内置驱动程序,该驱动程序位于/home/jenkins/sonar-3.5.1/extensions/jdbc-driver/mysql/文件mysql-connector-java-5.1.18.jar存在,可读并包含Driver.class文件。“

我在这个位置没有连接器jar文件(事实上我在扩展目录中唯一的文件夹是'oracle')。我应该有吗?就sonarqube文档而言,我不必将MySQL配置为使用来自其他地方的任何额外驱动程序。

非常感谢提前。如果需要,我可以粘贴部分Ant脚本,但这看起来更像是数据库权限问题。 干杯, 汤姆

2 个答案:

答案 0 :(得分:0)

配置MySQL,默认情况下只启用localhost连接。

GRANT ALL PRIVILEGES ON *.* TO 'user'@'YOUR_IP_ADDRESS'

答案 1 :(得分:0)

第一件事。

您正在使用ANT触发SonarQube。有关详细信息,请查看here

因此,根据错误日志,它似乎是您的项目的权限问题。 Sonar无法连接到您的数据库。

假设您的数据库是Sonar

username = sonar
password = sonar

在这种情况下,您必须为数据库授予连接权限。 要提供权限,您必须运行以下命令。

GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'DOMAIN-NAME' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'127.0.0.1' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'CURRENT-IP-ADDRESS' IDENTIFIED BY 'sonar';

请查看更多详情here