MySQL版本:5.6.25(64位Linux)。Ant版本:1.9.5。声纳版本:5.1.1。当我运行ant脚本时,会遇到权限问题。比如:
org.sonar.runner.impl.RunnerException:无法执行sonar。。。。。由java.lang.IollegalStateException引起:无法连接到数据库。。。。…由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/extensions/jdbc-driver/mysql/文件mysql-connector-java-5.1.18.jar存在,可读,并包含driver.class文件。"
我在这个位置没有连接器jar文件(事实上,我在扩展目录中唯一的文件夹是"oracle")。我应该要一个吗?就sonarqube文档而言,我不必配置MySQL来使用其他地方的任何额外驱动程序。
非常感谢。如果需要,我可以粘贴Ant脚本的一部分,但这看起来更像是数据库权限问题。干杯Tom
配置MySQL,默认情况下只启用localhost连接。
GRANT ALL PRIVILEGES ON *.* TO 'user'@'YOUR_IP_ADDRESS'
第一件事。
您正在使用ANT触发SonarQube。有关更多详细信息,您可以在此处查看。
因此,根据错误日志,它似乎是您项目的权限问题。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';
请在此处查看更多详细信息。