我的计算机上有一个名为heidiSQL的程序,它允许我用查询来编辑数据库中的数据。最近尝试通过此程序创建一个新用户,同时将其注册为根帐户。我使用了以下代码
create user 'john91'@'localhost' identified by 'google';
grant all privileges on *.* to 'john91'@'localhost;
flush privileges;然后我关闭了HeidiSQL程序,再次打开它与新用户john91登录,它运行良好,但令我印象深刻的是,我无法再登录到我的根帐户。
然后,我打开命令行,使用用户'john91‘登录(这很有效),并使用以下代码签入服务器中的所有用户:
select host,user from mysql.user;我发现'john91‘是系统中唯一的用户。通过使用此代码并在与'john91‘用户登录时,我能够创建一个新的根帐户:
create user 'root'@'127.0.0.1' identified as 'google';这很好,但是我不能授予这个根帐户任何特权,所以当我使用:
grant all privileges on *.* to 'root'@'127.0.0.1';
ERROR 1045 (28000): access denied for user 'john91'@'localhost' (using
password: YES)那么,这是重新创建我的根帐户的正确方式吗?如果是,我做错了什么,如果没有,我应该如何做呢?
更新,我需要创建'root'@'localhost‘MySQL不允许我通过用户'john91’这样做,怎么做呢?
发布于 2015-10-27 03:22:11
你应该这么做的:
grant all privileges on *.* to 'john91'@'localhost' with grant option;你忘了给'john91'@'localhost‘授予选项。因此,您不能将特权授予其他任何人。
您可以通过执行以下操作来解决这个问题
update mysql.user set grant_priv='Y' where user='john91' and host='localhost';
flush privileges;那么,你应该可以
grant all privileges on *.* to 'root'@'127.0.0.1';https://dba.stackexchange.com/questions/119254
复制相似问题