当您忘记了Linux系统上MySQL数据库的密码时,不要惊慌,以下是一些恢复或重置MySQL密码的方法:
方法1:使用--skip-grant-tables
选项启动MySQL服务
1、停止MySQL服务:
sudo systemctl stop mysqld
或者如果您使用的是较旧的system V init系统:
sudo service mysqld stop
2、以安全模式启动MySQL:
在启动命令中添加--skip-grant-tables
参数,这将允许您无需密码即可访问MySQL服务器。
sudo mysqld_safe --skip-grant-tables &
或者直接启动MySQL:
sudo mysqld --skip-grant-tables &
3、登录到MySQL:
由于跳过了权限表,您可以直接登录MySQL而不需要密码:
mysql -u root
4、更改root用户密码:
在MySQL提示符下,执行以下SQL命令来更改root用户的密码:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
请将NewPassword
替换为您想要设置的新密码。
5、退出MySQL并重启服务:
exit
然后重启MySQL服务以应用更改:
sudo systemctl start mysqld
或者对于旧的init系统:
sudo service mysqld start
方法2:使用单用户模式重置密码
1、停止MySQL服务:
sudo systemctl stop mysqld
2、启动MySQL到单用户模式:
mysqld_safe --skip-networking &
3、登录MySQL:
mysql -u root
4、更改root用户密码:
使用与方法1相同的SQL命令来更改密码。
5、退出MySQL并重启服务:
exit
然后重启MySQL服务:
sudo systemctl start mysqld
方法3:编辑配置文件重置密码(适用于MySQL 5.7及以后版本)
1、停止MySQL服务:
sudo systemctl stop mysqld
2、编辑MySQL配置文件:
打开MySQL配置文件my.cnf
或my.ini
,通常位于/etc/mysql/
或/etc/
目录下,找到[mysqld]
部分,添加或修改以下行:
[mysqld] skip-grant-tables
3、启动MySQL服务:
sudo systemctl start mysqld
4、登录MySQL并更改密码:
mysql -u root
执行与方法1相同的SQL命令来更改密码。
5、关闭MySQL服务并移除配置文件中的更改:
exit
停止MySQL服务:
sudo systemctl stop mysqld
编辑配置文件,删除或注释掉skip-grant-tables
行,然后保存文件。
6、重启MySQL服务:
sudo systemctl start mysqld
FAQs
Q: 我可以使用这些方法重置其他用户的密码吗?
A: 是的,您可以使用类似的方法重置任何用户的密码,只需将SQL命令中的用户名从root
更改为所需的用户名即可,要重置名为username
的用户密码,您可以执行以下命令:
ALTER USER 'username'@'localhost' IDENTIFIED BY 'NewPassword';
Q: 如果我在尝试这些方法时遇到错误怎么办?
A: 如果在尝试上述方法时遇到错误,请确保您具有足够的权限来执行这些操作,检查您的MySQL日志文件(通常位于/var/log/mysql/
或/var/log/
目录下)以获取有关错误的更多信息,如果问题仍然存在,您可能需要查阅官方文档或寻求社区的帮助。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1269082.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复