【问题标题】:MySQL Access denied for user 'User'@'localhost' (using password: YES)用户'User'@'localhost'的MySQL访问被拒绝(使用密码:YES)
【发布时间】:2016-06-21 22:15:33
【问题描述】:

我在 netbeans 中为一个项目(java web 应用程序)连接了一个 MySQL 数据库。我以root身份创建了具有正确登录详细信息的MySQL服务器并创建了一个数据库。我将数据库连接到项目,但是当我运行应用程序时,它在浏览器中显示错误:

类型异常报告 消息内部服务器错误 描述 服务器遇到一个内部错误,阻止它完成这个请求。 例外 javax.servlet.ServletException:java.sql.SQLException:用户'User'@'localhost'的访问被拒绝(使用密码:是) 根本原因 java.sql.SQLException:用户'User'@'localhost'的访问被拒绝(使用密码:是) note 异常的完整堆栈跟踪及其根本原因可在 GlassFish Server Open Source Edition 4.1.1 日志中找到。

日志文件中的条目是:

java.sql.SQLException:用户'User'@'localhost'的访问被拒绝(使用密码:是) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:925) 在 com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1704) 在 com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1250) 在 com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2465) 在 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498) 在 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283) 在 com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:822) 在 com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:422) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 在 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404) 在 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317) 在 java.sql.DriverManager.getConnection(DriverManager.java:664) 在 java.sql.DriverManager.getConnection(DriverManager.java:247) 在 org.apache.jsp.Login_jsp.cn(Login_jsp.java:114) 在 org.apache.jsp.Login_jsp._jspService(Login_jsp.java:589) 在 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 在 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)

我在其他一些形式中提到的几个方面都很累,但没有使用。

【问题讨论】:

  • 您没有名称为 User 的用户,如果存在,则用户帐户不受密码保护。首先尝试将 DB 与您在代码中使用的 UN 和 PW 连接。
  • @Naman 。肯定会创建用户,因为当我在 mysql 用户列表中看到它也显示该名称时。
  • 你试过用那个 UN(User) & PW(your PW) 登录 mysql 吗?
  • @Naman 是的,但我显示错误为 ERROR 1045 (28000): Access denied for user 'User'@'localhost' (using password: YES)
  • 用户密码一定是错误的。

标签: mysql database jsp netbeans


【解决方案1】:

您没有正确创建用户'bkUser'@'localhost'

【讨论】:

  • 我使用以下 sql 语句正确创建:
     GRANT ALL PRIVILEGES ON dbname.* TO 'User'@'%' IDENTIFIED BY 'Pass' WITH GRANT OPTION; 
  • MySQL 不同意你的观点。至少你的密码错了。
【解决方案2】:

我找到了解决方案,当我使用 sql 语句授予权限时,我使用了

'user@%'
因为它不起作用。正确的 sql 语句是:
将 dbname.* 上的所有权限授予 'User'@'localhost' 由 'Pass' 标识,带有 GRANT 选项; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2016-07-11
    • 2017-12-30
    • 2017-03-06
    • 2013-05-07
    • 2019-06-20
    相关资源
    最近更新 更多