我跑了这个:mysql> update user set User = 'alic' and password = 'X' where User = 'r
oot';
,输出为:Query OK, 3 rows affected, 3 warnings (0.07 sec)
Rows matched: 3 Changed: 3 Warnings: 3
我尝试使用usernme ='root'和password =''登录PHPMYADMIN 我已登录但问题是我没有任何权限,也没有表格,也没有新帐户,也没有Flushing Privileges!
每当我尝试更新用户表时,我都会Access Denied for ''@'Localhost'
或ERROR 1133 (42000): Can't find any matching row in the user table
如果仔细观察''@''localhost;
意味着有一个空的用户名''
当我尝试通过PHPMYADMIN更改密码时
此消息会弹出#1133 - Can't find any matching row in the user table
答案 0 :(得分:0)
因此,如果我正确读取此内容,您运行的MySQL语句会将您的所有root
帐户用户名重命名为alic
,密码为X
,但X不会被哈希,所以基本上你无法以这些用户身份登录,因为密码永远不会匹配。
然后你尝试以root身份登录,这没有给你任何权限 - 因为你以匿名用户身份登录,因为root不再存在。
解决方案与您忘记MySQL密码的方式相同,可以在https://stackoverflow.com/a/6401963/2385479或Resetting MySQL root password处回答。在* nix系统上,使用--skip-grant-tables启动MySQL并通过命令行客户端再次设置密码,但是您希望将alic
替换为说明使用root
的位置。看起来好像是在使用Windows,所有系统的详细说明可以在https://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
总结Windows说明:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
C:\> C:\mysql\bin\mysqld-nt --init-file=C:\\mysql-init.txt
引用您在上面创建的文件的实际路径。再次,在适当的位置替换用户名alic
而不是root
,所需的新密码以及步骤2中文本文件的路径。
获得alic
的工作密码后,您可以重新登录并将三个alic
用户重命名为`root。
答案 1 :(得分:0)