我输入了以下内容:
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)不起作用?
答案 0 :(得分:2)
MySQL用户应该在GRANT语句中用单独的用户名和主机名标识:
> grant ... to 'root'@'localhost' ...
^ ^
(请注意用户名和主机名周围的引号。)MySQL用户由用户名和主机名标识。如果您只有一个带引号的字符串,MySQL会将其用作用户名并假定主机名。检查mysql.db表,可能有一行包含User
的{{1}}列。