访问被拒绝用户'root'@'localhost'(使用密码:YES)(Mysql :: Error)

我试图在我的服务器上部署Web应用程序,我得到这个MySQL数据库exception“访问拒绝用户'根'@'localhost'(使用密码:YES)(Mysql :: Error)”

我尝试使用mysql -u root -p从命令提示符访问数据库我能够执行所有数据库操作。

什么是错误

 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:771) at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3649) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1176) at com.mysql.jdbc.Connection.createNewIO(Connection.java:2558) at com.mysql.jdbc.Connection.<init>(Connection.java:1485) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) at java.sql.DriverManager.getConnection(DriverManager.java:620) at java.sql.DriverManager.getConnection(DriverManager.java:200) at com.mpigeon.DbConnection.DbConn(DbConnection.java:26) at com.mpigeon.CheckLoginHome.doGet(CheckLoginHome.java:39) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 

您需要授予从本地主机的根权限。 检查这个 Ubuntu的帮助

尝试使用root喜欢..

 mysql -uroot 

那么您可以通过使用登录后检查不同的用户和主机

 select user,host,password from mysql.user; 

检查你是在密码的空白处。

在将MySQL服务器从5.1.73升级到5.5.45之后,我遇到了同样的错误还有另一种方法来修复这个错误。

在我的情况下,我能够使用root密码连接到MySQL,但MySQL主动拒绝授予任何用户的特权;

  1. 以root身份连接到MySQL

     mysql -u root -p 

    然后输入你的MySQL root密码;

  2. 选择数据库;

     use mysql; 
  3. 最有可能只有一个记录在mysql.user表中只允许从localhost连接(这是我的情况),但默认情况下,应该有两个记录的根,一个localhost和另一个为127.0.0.1 ;

  4. 如果Host='127.0.0.1'不存在,则为Host='127.0.0.1' root用户创建额外的记录;

      SET @s = CONCAT('INSERT INTO mysql.user SELECT ', REPLACE((SELECT GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'user' AND TABLE_SCHEMA = 'mysql') ,"Host","'127.0.0.1'"), ' FROM mysql.user WHERE User="root"'); PREPARE stmt FROM @s; EXECUTE stmt; 
  5. 除此之外,你可以执行mysql_upgrade -u -p来查看是否一切正常。

我的应用程序使用Mura CMS,我遇到了这个问题。 但是解决方案是我的mysql本地服务器和配置文件中的密码之间的密码不匹配。 只要我同步他们的工作。

我通过删除由MySQL创建的空用户来解决这个问题。 我只有root用户和我自己的用户。 我删除了其余的。

更新mysql数据库中的用户表。 并设置一些密码,它是空白的,我使用root用户,所以我设置root用户的密码。

 update mysql.user set password = PASSWORD('123456') where password = ''; flush privileges; 

然后再次尝试从ATG CIM通过提供密码,它工作正常。

更新后

http://i.stack.imgur.com/3Lchp.png

我在安装SugarCRM(一个免费的CRM)的时候遇到了这个问题。

系统无法使用root用户连接到数据库。 我可以确定地从控制台以root登录…那么问题是什么?

我发现在我的情况下,我得到了完全相同的错误,但那是因为密码是直接从$_POST数据发送到mysql的,换句话说,我的密码中的<字符被发送到mysql作为&lt; 这意味着密码错误。

其他一切都没有帮助一点。 mysql中的用户列表是正确的,包括匿名用户(出现在root项之后)。

我GOOGLE了很多,但没有找到一个明确的答案我的问题。 我使用KeyPass生成一个强大的密码,并可以在mysql工作台上成功使用它,但不能从命令行连接。 所以我把psw改成了一个简单的命令行。 我设法创建了一个强大的密码,可以从终端连接。 所以我的建议是,先尝试一个简单的密码,然后再尝试所有的事情。

我正在运行UT,并开始收到错误消息。 我不知道是什么问题。 但是当我把INTELLIJ中的编码风格改为UTF8时,它又开始工作了。

访问被拒绝用户'root'@'localhost'(使用密码是)hibernate

这是我的网址db.url = jdbc:mysql:// localhost:3306 / somedb?useUnicode = true&connectionCollat​​ion = utf8_general_ci&characterSetResults = utf8&characterEncoding = utf8

更新mysql的表mysql.user中的空密码

 use mysql; select host,user,password from mysql.user; update mysql.user set password = PASSWORD('123456') where password = ''; flush privileges;