我今天使用 PhpMyAdmin 登录了我的 SQL 服务器,它似乎表现得很奇怪,仅在尝试创建新用户帐户时抛出随机的 [Token Mismatch] 错误。我尝试了多次,使用多个用户,但仍然得到相同的结果。然后我尝试更新自己的密码,成功了,但是不允许我登录服务器。
尝试使用我的用户名登录,新设置的密码在 PhpMyAdmin 中返回以下错误。
#1130 Cannot log in to the MySQL server
我可以通过命令行访问服务器,并尝试以“root”用户身份登录,得到以下信息:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
我 100% 确定我输入的用户帐户密码和 root 密码都是正确的,但无法登录服务器。
这是一台生产服务器,有多个托管网站在其上运行。
我试过跑步
mysqladmin -u root password my-new-pass
但是,由于不知道已经存在的 root 密码,因此此操作会失败。
我在所有管理帐户上完全被锁定在自己的数据库之外,如何才能重新获得对数据库的访问权限,同时保留数据库中的所有数据?
如果需要任何其他信息或诊断步骤,请随时询问。任何帮助都将不胜感激。
答案1
如果你可以重新启动mysql,你就可以重置你的root密码。
service mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit
service mysql restart
您现在就可以登录了