" mysqld的" root访问被拒绝

时间:2012-09-05 20:58:23

标签: mysql

我的root用户具有以下权限:

mysql> SHOW GRANTS FOR root@'%';
+--------------------------------------------------------------------------------------------------------------+
| Grants for root@%                                                                                            |
+--------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' |
| GRANT ALL PRIVILEGES ON `bedrock`.* TO 'root'@'%'                                                            |
+--------------------------------------------------------------------------------------------------------------+

当我尝试执行以下命令时,收到以下错误消息:

mysqladmin root -pSOMEPASSWORD
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

虽然我能够正常执行mysql命令,但我无法对mysqld执行此操作。有什么问题?感谢。

3 个答案:

答案 0 :(得分:2)

  1. 您的数据库中可能没有密码的用户。 Start mysql in safe mode然后检查以确保您的所有用户都没有空密码字段。如果找到,可以添加密码或删除用户。
  2. 可能是密码不正确,需要更改

答案 1 :(得分:0)

为了改善知识基础: 问题在于权限和命令。它在调用bin/mysqld_safe --user=mysql而不是mysqladmin root -pSOMEPASSWORD时有效。请注意,用户mysql已经通过chown -R和chgrp -R获得了权限。

答案 2 :(得分:0)

试试这个:

$ mysqladmin -u root -p password yourChosenPassword
Enter password: 

并在提示符处重新输入相同的密码,然后您就可以从命令行调用mysqladmin:

$ mysqladmin -uroot -pyourChosenPassword [OPTIONS] command command....