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脚本,但这看起来更像是数据库权限问题。 干杯, 汤姆
答案 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。