无法访问 Sonar MySQL 数据库 原因:java.sql.SQLException:用户 'sonar&

Unable to access Sonar MySQL database Caused by: java.sql.SQLException: Access denied for user #39;sonar#39;@#39;glassfishdev.ccs.local#39; (using password: YES)(无法访问 Sonar MySQL 数据库 原因:java.sql.SQLException:用户 sonar@glassfishdev
本文介绍了无法访问 Sonar MySQL 数据库 原因:java.sql.SQLException:用户 'sonar'@'glassfishdev.ccs.local' 拒绝访问(使用密码:YES)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在尝试将声纳添加到我的持续集成构建系统中.我使用 ANT 作为我的构建脚本,我使用 sonar-ant-task-1.1.jar 作为声纳根据我在 SVN 中的源代码生成报告.

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

我做了什么

1.安装 MySQL 数据库.

1. Install MySQL database.

2. 使用声纳安装中提供的脚本创建声纳数据库、声纳用户并授予权限

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. 添加了 跟随到我的构建脚本

3. Added the following to my build script

4. 在 Jenkins Freestyle 构建项目中添加了以下外部变量

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.我还可以通过我的 sql 客户端工具连接到数据库,以验证数据库、用户和权限语句是否正确执行.

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.

然而,当 Jenkins 运行构建时,它似乎不知道如何连接到 MySQL 数据库.

However when Jenkins runs the build it does not seem to know how to connect to the MySQL database.

有什么想法吗?

推荐答案

解决方案是运行以下命令:

The solution was to run the following command:

全部授予 *.* 给 'sonar'@'%';

这篇关于无法访问 Sonar MySQL 数据库 原因:java.sql.SQLException:用户 'sonar'@'glassfishdev.ccs.local' 拒绝访问(使用密码:YES)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在文件系统磁盘足够的情况下,这个文件大小是可以无限增长的。 为了避免ibtmp1文件无止境的暴涨导致
What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)
MySQL groupwise MAX() returns unexpected results(MySQL groupwise MAX() 返回意外结果)
MySQL SELECT most frequent by group(MySQL SELECT 按组最频繁)
Why Mysql#39;s Group By and Oracle#39;s Group by behaviours are different(为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同)
MySQL GROUP BY DateTime +/- 3 seconds(MySQL GROUP BY DateTime +/- 3 秒)