mysql:恢复管理员用户的所有权限

标签 mysql permissions sql-grant

我可能在这里要求不可能的事情。我刚刚尝试在 phpMyAdmin 中重置密码。为此,它会使用新密码创建一个新用户,并为您提供删除旧用户的选项。我选择删除旧用户并创建具有相同权限的新用户。

然后 phpMyAdmin 把我踢了出去。所以我认为这是因为我需要使用新密码登录。我试了好几次了,就是不让我进去。

所以我使用命令行(mysql -u root -p)以 root 身份登录。我能够登录并发现我的原始用户实际上不在那里。所以我再次创建了用户并尝试向该用户授予所有权限并得到:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'me'@'localhost' WITH GRANT OPTION;
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

然后我检查了用户 root 的 GRANTS 并看到:

mysql> show grants for current_user();
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, 
FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, 
LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, 
SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* 
TO 'root'@'localhost' IDENTIFIED BY PASSWORD 'blah' WITH GRANT OPTION

对我来说,我似乎无权向 root 用户授予权限。为了安全起见,我可能曾经设置过这一点。

基本上,我认为数据库中不再有用户有权授予所有权限。我可以恢复这个吗?!?!请帮忙?!?我需要创建一个新的 mysql 实例吗?

最佳答案

看来您的补助金可能有些偏差。为什么我这么说???

我之前在 DBA StackExchange 中处理过授权表问题

如果你看the first link ,我显示了从 MySQL 5.6 到 MySQL 4.1 的 mysql.user 的所有布局。

显然,您似乎在没有修复 mysql.user 的情况下升级了 MySQL。

希望你能跑

# mysql_upgrade --upgrade-system-tables

重新调整mysql.user并使用Y自动填充缺失的权限。

关于mysql:恢复管理员用户的所有权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23276198/

相关文章:

mysql - 如何在 MySql 中使用 where 和 group by

javascript - 当用户允许使用麦克风 Javascript 时,事件处理程序是什么?

shell - 基于 SSH key 限制访问

mysql - 如何编写好的Mysql授权脚本

database - PostgreSQL - 保护数据库和隐藏结构

mysql - 如何合并所有并按多个选择分组而不输出空?

Mysql Count相关记录不计数

database - SQL 授权在多个对象上执行

mysql - 使用MYSQL从事务表中获取可用余额

ios - 从我启动的作业中收到错误代码 126