我使用 Ubuntu 16.04、Apache 2.4 和 MySQL 5.7.16。
我运行以下命令来恢复丢失的 MySQL 根密码,以便我可以登录 PHPmyadmin 并进行备份等:
sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &
mysql -uroot
use mysql;
update user set password=PASSWORD("HERE_I_TYPED_MY_NEW_PASSWORD") where User='root';
flush privileges;
quit
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
我具体是如何运行这些的:
如你所见,我总共运行了 9 条命令。当我运行第三条命令时,二级提示打开后,我将后面的所有 4 个命令粘贴到其中(基本上和上面显示的一样)。
然后我运行了最后两个命令,从那一刻起,不仅我的新密码不起作用 --- 我也无法浏览我的任何网站 --- 所有网站都显示“数据库错误”(即使我将他们的密码更改为新密码之后也是如此),而且我也无法使用新密码登录 PHPmyadmin:
我目前的问题:
当我尝试使用我的“新”密码登录 PHPmyadmin(或者甚至强制以 root 身份登录而不输入密码)时,我得到:
2002 - 没有此文件或目录
服务器没有响应(或者本地服务器的套接字配置不正确)。
我应该注意,我尝试停止并启动 MySQL 服务,但没有任何变化。
我的问题:
损坏是否不可逆转?我怎样才能恢复正常?我没有找到关于此问题的 up2date 文档。
笔记:
答案1
这样做flush privileges
可能会很危险。您应该检查所有用户,看看他们是否仍然有权GRANTS
访问他们的数据库。这可能会解决网站的“数据库错误”