我已经使用 --skip-grant-tables 选项登录到 MySQL。但是我不知道如何将所有权限取回给 root 用户。
我试过:
GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost';
MySQL 说:
# 1290 - The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
尝试:
GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost'
WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0
MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
MySQL 说:
# 1290 - The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
最佳答案
适用于 mysql 8.0.12+
我已经尝试了文档(不起作用)我已经尝试了各种其他选项,但都失败了。
PASSWORD()
已弃用,SET PASSWORD
已禁用,ALTER USER
也已禁用。
- 停止mysql服务
- 以这种方式启动:
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
- 登录(mysql)并执行:
更新用户集 authentication_string='' where User='root';
killall mysqld
- 重新开始服务
现在您可以在无密码登录后使用set password
或alter user
关于mysql - 如何将所有权限恢复到 MySQL 中的 root 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712806/