无法访问声呐MySQL数据库造成的:值java.sql.SQLException:拒绝访问用户sonar'@'glassfishdev.ccs.local'(使用密码:YES) [英] Unable to access Sonar MySQL database Caused by: java.sql.SQLException: Access denied for user 'sonar'@'glassfishdev.ccs.local' (using password: YES)
问题描述
我想声纳添加到我的持续集成构建系统。我使用ANT作为我的生成脚本,我现在用的声纳蚂蚁任务-1.1.jar声纳生成根据SVN我的源$ C $ C的报告。
问题
当构建运行并点击了声纳蚂蚁任务,我得到异常如下:
产生的原因:java.sql.SQLException中:拒绝访问用户sonar'@'glassfishdev.ccs.local'(使用密码:YES)
在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
在com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4004)
在com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1284)
在com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2312)
在com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
在com.mysql.jdbc.ConnectionImpl<&初始化GT;(ConnectionImpl.java:774)
在com.mysql.jdbc.JDBC4Connection<&初始化GT;(JDBC4Connection.java:49)
在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
在java.lang.reflect.Constructor.newInstance(Constructor.java:513)
在com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
在com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
在com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
在org.sonar.jpa.session.DriverProxy.connect(DriverDatabaseConnector.java:160)
在java.sql.DriverManager.getConnection(DriverManager.java:582)
在java.sql.DriverManager.getConnection(DriverManager.java:185)
在org.sonar.jpa.session.DriverDatabaseConnector.getConnection(DriverDatabaseConnector.java:95)
在org.sonar.jpa.session.AbstractDatabaseConnector.testConnection(AbstractDatabaseConnector.java:185)
... 40更多
我做了什么
1 安装的MySQL数据库。
2 通过使用声纳安装提供的脚本创建数据库声纳,声纳用户,并授予权限
** CREATE DATABASE声纳CHARACTER SET UTF8 COLLATE utf8_general_ci;
CREATE IDENTIFIED BY声纳用户声纳;
GRANT ALL ON声纳* TO'声纳'@'%'IDENTIFIED BY声纳。
。GRANT ALL ON声纳* TO'声纳'@'localhost'的IDENTIFIED BY声纳;
FLUSH PRIVILEGES; **
3 新增了的以下以我的构建脚本
4。添加在詹金斯自由式以下外部变量建设项目
<$p$p><$c$c>sonar.jdbc.url=jdbc:mysql://10.120.21.12:3306/sonar?useUni$c$c=true&characterEncoding=utf8sonar.jdbc.driverClassName = com.mysql.jdbc.Driver
sonar.jdbc.username =声纳
sonar.jdbc.password =声纳
sonar.host.url = HTTP://10.120.21.12:9000 /
5。我还可以通过我SQL客户端工具连接到数据库,以验证该数据库,用户和权限声明正确执行。
然而,当詹金斯运行构建它似乎不知道如何连接到MySQL数据库。
有什么想法?
解决方案是运行以下命令:
GRANT ALL ON * TO'声纳'@'%';
I am trying to add Sonar to my Continuous Integration build system. I am using ANT as my build script and I am using the sonar-ant-task-1.1.jar for sonar to generate the reports based on my source code in SVN.
Problem When the build runs and hits the sonar ant task I get the exception as follows:
Caused by: java.sql.SQLException: Access denied for user 'sonar'@'glassfishdev.ccs.local' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4004)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1284)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2312)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
at org.sonar.jpa.session.DriverProxy.connect(DriverDatabaseConnector.java:160)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at org.sonar.jpa.session.DriverDatabaseConnector.getConnection(DriverDatabaseConnector.java:95)
at org.sonar.jpa.session.AbstractDatabaseConnector.testConnection(AbstractDatabaseConnector.java:185)
... 40 more
What I have done
1. Install MySQL database.
2. Create the sonar database, sonar user, and grant permissions by using the script provided in the sonar installation
**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;**
3. Added the following to my build script
4. Added the following external variables in Jenkins Freestyle build project
sonar.jdbc.url=jdbc:mysql://10.120.21.12:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.host.url=http://10.120.21.12:9000/
5. I was also available to connect to the database through my sql client tool to verify that the database, user and permissions statements were executed correctly.
However when Jenkins runs the build it does not seem to know how to connect to the MySQL database.
Any thoughts?
The solution was to run the following command:
GRANT ALL ON *.* TO 'sonar'@'%';
这篇关于无法访问声呐MySQL数据库造成的:值java.sql.SQLException:拒绝访问用户sonar'@'glassfishdev.ccs.local'(使用密码:YES)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!