如何在MySQL中将所有权限恢复给root用户?

16

我正在使用MySQL。我的根用户没有所有的权限。如何将所有的权限恢复给根用户?请逐步说明操作步骤。


请查看http://askubuntu.com/questions/766334/cant-login-as-mysql-user-root-from-normal-user-account-in-ubuntu-16-04。 - Charney Kaye
4个回答

24

以下方法在 Ubuntu 上对我有效:

停止 MySQL 服务器:

/etc/init.d/mysql stop

使用命令行启动MySQL:

/usr/sbin/mysqld
在另一个终端中输入mysql并执行以下命令:
grant all privileges on *.* to 'root'@'%' with grant option;

您可能还想添加

grant all privileges on *.* to 'root'@'localhost' with grant option;

并且可以选择使用密码。

flush privileges;

然后退出MySQL提示符,关闭在前台运行的mysqld服务器。 重新启动:

/etc/init.d/mysql start  

2
在谷歌搜索了三个小时并试了几乎所有方法之后,这是唯一有效的解决方案!! - vinita
ERROR 1410 (42000): You are not allowed to create a user with GRANT - mercury

10

如果您遇到授权访问被拒绝的问题,您可以尝试使用mysql_upgrade来解决问题:

/usr/bin/mysql_upgrade -u root -p

以 root 用户身份登录:

mysql -u root -p

运行以下命令:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
mysql> FLUSH PRIVILEGES;

错误 1410 (42000):您不被允许使用GRANT创建用户 / Centos8,Mysql8 - mercury

2

以root身份登录,然后运行以下MySQL命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
FLUSH PRIVILEGES;

错误SQL查询:GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost';MySQL 说:文档 #1045 - 用户'root'@'localhost'被拒绝访问(使用密码:是) - Steven
你在运行这个程序时,是以root身份登录到mysql的,对吗? - Kaleb Brasee
我想知道你是否需要设置密码,以及可能需要授予权限:GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' IDENTIFIED BY 'some_password' GRANT OPTION; - Kaleb Brasee
如果您查看,它可能会显示错误在第1行的 ( 上,但这在 SQL 查询中并不存在。MYSQL Workbench 告诉我出现错误,但实际上命令已成功执行。 - Theresa Forster
错误 1410 (42000):您不被允许使用GRANT创建一个用户。 / Centos8,Mysql8 - mercury
显示剩余2条评论

0
如果您遇到授权访问被拒绝的问题,可以尝试使用mysql来解决该问题:
grant all privileges on . to root@'localhost' identified by '您的密码';
grant all privileges on . to root@'IP地址' identified by '您的密码?';
您可以在任何mysql用户上尝试此操作,它是有效的。
使用以下命令以iP地址登录mysql。
mysql -h 10.0.0.23 -u root -p

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