授予后MySQL错误1045,我做错了什么?

时间:2014-09-04 20:00:10

标签: mysql

我输入了以下内容:

mysql> grant all on DBNAME.* to 'root@localhost' identified by 'MYROOTPWD';

然后我退出了mysql并做了一些shell的东西。现在,当我尝试使用mysql时,它失败了

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我没有输错密码;我可以在我的终端中的几行中的grant命令中看到它。我在这个主题上尝试了一堆previous answers但没有成功。

我做错了什么?当然,我可以重置root密码并继续前进,但我想知道我的错误,所以我从不重复它。

更新:不,我没有刷新权限。显然我误解了它的作用。为什么我之前存在的能力(根本不使用mysql)不起作用?

1 个答案:

答案 0 :(得分:2)

MySQL用户应该在GRANT语句中用单独的用户名和主机名标识:

> grant ... to 'root'@'localhost' ...
                    ^ ^

(请注意用户名和主机名周围的引号。)MySQL用户由用户名和主机名标识。如果您只有一个带引号的字符串,MySQL会将其用作用户名并假定主机名。检查mysql.db表,可能有一行包含User的{​​{1}}列。