当前位置: 首页 > 面试题库 >

无法访问Sonar MySQL数据库原因:java.sql.SQLException:用户'sonar'@'glassfishdev.ccs.local'的访问被拒绝(使用密码:是)

岑和风
2023-03-14
问题内容

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

问题 当构建运行并执行声纳任务时,出现如下异常:

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数据库。

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

**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.
在我的构建脚本中添加了以下内容

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

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客户端工具连接到数据库,以验证数据库,用户和权限语句是否正确执行。

但是,当Jenkins运行构建时,它似乎并不知道如何连接到MySQL数据库。

有什么想法吗?


问题答案:

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

全部授予*’声纳’@’%’;



 类似资料:
  • 问题内容: 如下代码: 在上引发此异常: 这是怎么引起的,我该如何解决? 编辑: 产生: 问题答案: 从头开始创建数据库时,可以使用: 这是一个相同的场景。

  • 因此,当我尝试从Java代码连接到MySQL数据库时,我收到错误的访问被拒绝。我所能找到的一切都没有解决问题,代码是非常基本的。我以前在项目中用过,在很多教程中都发现它是那样的。所以首先相关代码: 注意:我可以很好地登录到MySQL workbench中的DB中,并在那里做所有的事情,从创建/更改表到插入等等。 那么我做了什么来解决这个问题:它让我想知道为什么它没有声明哪个用户被拒绝了注意它声明“

  • 我的application.properties文件: spring.datasource.url=jdbc:mysql:/localhost:3306/appautorreconnect=true&usessl=false spring.datasource.data-username=myusername spring.jpa.properties.hibernate.dialecto=org

  • 我正试图将一个实时WordPress站点复制到我的本地服务器上。我通过MAMP从现场站点导入数据库,在尝试连接到phpMyAdmin时收到了一条错误消息: 我在这一点上被难住了。有人能帮忙吗?

  • 问题内容: 我在使用Laravel 5.0的Mac OS Yosemite上。 在我的 本地 环境中,我一直在跑: 用户’homestead’@’localhost’的访问被拒绝(使用密码:是) 组态 这是我的 .env app \ config \ database.php 如何避免这种错误? 我试过了 : 在 app / database.php中 替换为 -> 此外,在 .env中 -> 2

  • 问题内容: 我是MySQL的新手,我想在Windows桌面上运行WordPress,它需要MySQL。 我安装了Microsoft提供的所有内容。我从来没有为MySQL设置过root密码,在安装WordPress的最后一步中,它要求输入MySQL服务器密码。 root的默认密码是多少(如果有的话)以及如何更改它? 我试过了: 但是它显示了我: 在此之后,我尝试: 但是,它要求输入我没有的密码。 更