当使用LNMP(Linux、Nginx、MySQL、PHP)环境时,忘记数据库密码是一个常见但令人头疼的问题,这种情况可能会影响网站的正常运行,但别担心,通过一系列步骤可以轻松解决,本文将详细介绍如何在不同场景下找回或重置MySQL数据库密码,确保你能够快速恢复服务。

检查MySQL是否正在运行
在尝试重置密码之前,首先要确认MySQL服务是否正在运行,如果MySQL未启动,后续操作将无法进行,可以通过以下命令检查MySQL状态:
systemctl status mysql
如果MySQL未运行,使用以下命令启动它:
systemctl start mysql
停止MySQL服务以安全重置密码
为了安全地重置密码,需要先停止MySQL服务,这可以通过以下命令实现:
systemctl stop mysql
停止服务后,MySQL将不再接受任何连接,为后续操作提供安全的环境。
跳过权限表启动MySQL
需要以跳过权限表的方式启动MySQL,这允许你以root权限登录并重置密码,使用以下命令:
mysqld_safe --skip-grant-tables &
该命令会在后台启动MySQL,并跳过权限检查,让你无需密码即可访问。

登录MySQL并重置密码
可以使用以下命令以root身份登录MySQL:
mysql -u root
登录成功后,执行以下SQL命令重置密码,假设新密码为”NewPassword123″:
USE mysql;
UPDATE user SET authentication_string=PASSWORD('NewPassword123') WHERE User='root';
FLUSH PRIVILEGES;
EXIT; 这些命令会更新root用户的密码,并刷新权限表使更改生效。
重启MySQL服务使密码生效
完成密码重置后,需要重启MySQL服务以使新密码生效,停止当前运行的MySQL实例:
pkill mysqld
正常启动MySQL服务:
systemctl start mysql
验证新密码是否生效
使用新密码登录MySQL以验证密码是否成功更新:

mysql -u root -p
输入新密码后,如果能成功登录,说明密码重置操作已完成。
相关FAQs
问题1:如果无法停止MySQL服务怎么办?
解答:如果MySQL服务无法通过systemctl停止,可以尝试使用强制终止命令:pkill -9 mysqld,但请注意,这可能会导致数据丢失,建议在操作前备份重要数据。
问题2:重置密码后仍无法登录,可能的原因是什么?
解答:可能是权限表未正确刷新或密码格式不符合要求,可以尝试执行FLUSH PRIVILEGES;再次刷新权限,或检查密码是否包含特殊字符,确保符合MySQL的密码策略。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复