如何允许用户登录MySQL?

7
作为root mysql用户,我执行了以下操作:
grant all on mydb.* to john identified by 'john1';

然后我尝试通过shell登录:

mysql -h localhost -u john -pjohn1;

但是当我这样做时,我会得到错误提示。
ERROR 1045 (28000): Access denied for user 'john'@'localhost' (using password: YES)

我应该如何允许John登录到MySQL终端?我需要使用root MySQL用户在mysql.user表中更改某些内容吗?

谢谢。


请注意,下面的答案提供的访问权限远不止于“登录”或“使用”访问。 - Kzqai
2个回答

12
尝试一下。
GRANT ALL PRIVILEGES on mydb.* to 'john'@'localhost' identified by 'john1';

或者问题是因为您没有指定架构。 在登录控制台命令的末尾添加“mydb”:

mysql -h localhost -u john -pjohn1 mydb

文档:http://dev.mysql.com/doc/refman/5.1/en/adding-users.html


由于某些原因,在您的解决方案能够起作用之前,我不得不删除mysql.user表中所有用户为'john'的记录。 - John

3

尝试以下命令:

mysql -h localhost -u john -p

你将被提示输入密码。在那里输入你的密码。如果你仍然无法登录,请授予john访问localhost的权限:

GRANT ALL PRIVILEGES on mydb.* to 'john'@'localhost' identified by 'john1';

然后再次尝试登录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接