java - 由 : java. sql.SQLException 引起:用户 'root' @'localhost' 的访问被拒绝(使用密码:YES)

标签 java mysql spring

当我尝试运行该应用程序时,出现以下错误(见下文)。已经尝试过类似主题上发布的解决方案。

    Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:456)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:464)
    at com.caveofprogramming.spring.test.OffersDAO.getOffers(OffersDAO.java:26)
    at com.caveofprogramming.spring.test.App.main(App.java:16)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
    at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
    ... 10 more
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

阅读其他类似主题的解决方案后,我尝试了以下方法:

- GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION;
- Change jdbc:mysql://localhost:3306/mydb to jdbc:mysql://127.0.0.1:3306/mydb
- Create a new User

如果我从 CMD 尝试 C:\mysql-5.6.21-winx64\bin>mysql -u root -p -h localhost 我可以毫无问题地登录。

在我卸载 Mysql 并尝试重新安装之前,请提出任何其他建议。

最佳答案

错误java.sql.SQLException:用户'root'@'localhost'访问被拒绝(使用密码:YES),使用提供的凭据登录mysql失败。

有两件事你可以检查。

  1. 如果提供的密码有效。

  2. 授予权限。

应该是这样的,

'GRANT ALL PRIVILEGES ON *.* TO '[user name]'@'[server machine name]' IDENTIFIED BY '[password]' WITH GRANT OPTION;'

 FLUSH PRIVILEGES;

如果您没有执行刷新权限,您可能会遇到相同的错误。

例如:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_mysql_password' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

关于java - 由 : java. sql.SQLException 引起:用户 'root' @'localhost' 的访问被拒绝(使用密码:YES),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27722704/

相关文章:

java - 在 Java 中将数组字符串转换为字符串并返回

java - 认证前检查Spring-Security中的X509证书吊销状态

MySQL 从表中删除所有索引

mysql 功能无法正常工作

php - 如何使用 PHP 和 Mysql 插入马拉地语

java - springdoc-openapi-maven-plugin配置/apiDocsUrl的作用是什么?

java - 无法在 ucanaccess 中执行更新语句

java - 如何在 Java 中获得一个不太具体的语言环境

java - 与 Spring 集成的 PollableChannel

spring - Spring Data Elasticsearch 2.2.3.RELEASE如何配置Rest高级客户端的socket超时