我可能在这里要求不可能的事情。我刚刚尝试在 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 中处理过授权表问题
2012 年 4 月 12 日
:Cannot GRANT privileges as root2013 年 5 月 1 日
:Can I find out what version of MySQL from the data files?2013 年 8 月 7 日
:MySQL - ERROR 1045 (28000): Access denied for user : permission issue
如果你看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/