我不小心更改了我的root权限,如何解决?

i accidently change my root privilege, how to fix it?

所以我不小心更改了 root 用户的权限,现在我什么也做不了,因为数据库是隐藏的,因为没有全局权限,

已经尝试更改 [mysqld] 中的某些行并添加

skip-grant-tables

在 my.ini 中,但它无法再次将特权恢复为正常,只需说

ERROR 1290 (HY000): The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement

我的问题有什么解决方案吗?

我希望正如您所说,您已尝试 --skip-grant-tables option.You 已完成以下所有步骤: 1.Stop mysqld 并使用 --skip-grant-tables 选项重新启动它。 2.Connect 到 mysqld 服务器,只需:mysql(即没有 -p 选项,并且 可能不需要用户名)。 3.Issue mysql 客户端中的以下命令:

更新 mysql.user 设置 Grant_priv='Y', Super_priv='Y' WHERE 用户='root';

刷新权限;

4.After 那,你应该能够 运行 GRANT ALL ON . TO 'root'@'localhost';让它工作。

如果这不起作用,您可以在 Ubuntu 16.04 上使用 debian-sys-maint 用户来恢复 user.root 权限。您可以从这个文件

中找到 user.debian-sys-maint 的密码
sudo cat /etc/mysql/debian.cnf

打开 C:\xampp\mysql\bin\my.ini(MySQL 配置文件)

找到行 [mysqld] 并在其正下方添加 skip-grant-tables。示例:

# The MySQL server
[mysqld]
skip-grant-tables
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql" 
tmpdir = "C:/xampp/tmp" 
[...etc...]

如果您不知道密码,这应该允许您访问 MySQL。

停止并从 XAMPP 开始 MySQL 以使此更改生效。

接下来,在命令行中,连接到 MySQL:

C:\xampp\mysql\bin\mysql.exe --user=root

然后运行这些命令:

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';
exit

通过删除 skip-grant-tables 使您的 my.ini 恢复正常,重新启动 mysql 服务器。

完成。