我不小心更改了我的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 服务器。
完成。
所以我不小心更改了 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 服务器。
完成。