Linux 下忘记MYSQL密码,重置密码操作前言 MySQL是一种常用的关系型数据库管理系统,用于存储和管理数据。
前言
MySQL是一种常用的关系型数据库管理系统,用于存储和管理数据。MySQL 密码忘了是一个常见的问题,但不用担心,可以通过一些步骤来重置密码,重置MySQL数据库密码的步骤取决于当前的访问权限和MySQL的版本。下面将详细介绍如何在不同情况下重置MySQL密码。
一、重置 ROOT 密码
1.1 具有管理员权限的情况
如果有超级用户访问权限或可以以root用户身份登录,可以通过停止MySQL服务、启动安全模式、登录MySQL并执行SQL命令来重置密码,可以按照以下步骤重置密码:
-
首先,需要停止正在运行的MySQL服务。
# sudo service mysql stop # sudo /etc/init.d/mysql stop sudo systemctl stop mysql
-
以管理员身份启动MySQL安全模式,这样可以跳过密码验证。
sudo mysqld_safe --skip-grant-tables &
-
打开另一个命令行窗口,以管理员身份登录MySQL。
# 无需密码,会直接登入 mysql -u root
-
登录后,运行以下SQL命令来重置密码。
# 刷新权限 FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
将“新密码”替换为想要设置的新密码。
-
退出MySQL命令行窗口,然后停止安全模式的MySQL服务。可以直接搜索进程,然后KILL发送关闭信号。
sudo killall mysqld_safe # 如果在本地机器上执行上面命令无法停止安全模式,可以通过杀死进程方式解决 # 1、列出 mysqld_safe 的进程 ps aux | grep mysqld_safe # 2、拿到 PID 全部杀死,应该是第二列,就几位纯数字的,如果不知道可以单独输出 $ ps aux 看一下。 sudo kill -9 xxx xxx ...
-
重启MYSQL服务
# sudo service mysql start # sudo /etc/init.d/mysql start # sudo systemctl start mysql sudo systemctl restart mysql
-
使用新设置的密码以管理员身份登录MySQL,确保可以成功登录并访问数据库。
mysql -u root -p
1.2 没有管理员权限的情况
如果没有管理员权限,但仍然需要重置MySQL密码,可以尝试以下方法:
-
查找配置文件:在MySQL安装目录下找到 my.cnf 配置文件。该文件通常包含MySQL的配置信息,包括用户名和密码。
-
编辑配置文件:使用文本编辑器打开配置文件,并找到
[mysqld]
部分。在[mysqld]
后面任意一行添加skip-grant-tables
用来跳过密码验证的过程,然后保存并关闭文件。 -
重启MySQL服务:停止正在运行的MySQL服务,然后重新启动它,以使配置更改生效。
# systemctl 启动的使用这个停止 sudo systemctl stop mysql # systemctl 启动的使用这个重新启动 sudo systemctl start mysql # mac 本机,可以使用这个或可视化界面停止 sudo mysql.server stop # mac 本机,可以使用这个或可视化界面启动 sudo mysql.server start
-
登录MySQL:以任何用户身份登录MySQL,因为跳过了权限验证。
# 无需密码,会直接登入 mysql -u root
-
运行SQL命令来重置密码
# 刷新权限 FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; # 刷新权限 FLUSH PRIVILEGES;
将“新密码”替换为想要设置的新密码。
-
恢复配置文件:编辑配置文件,删除之前添加的“skip-grant-tables”行,并保存文件。
-
重启MySQL服务:停止MySQL服务,然后再次启动它,以使配置更改生效。
-
使用新密码登录:使用新设置的密码登录MySQL,确保可以成功登录并访问数据库。
二、重置普通用户密码
如果没有超级用户权限,但可以以普通用户身份登录,可以使用以下方法重置密码(前提是该用户有足够的权限来更改其他用户的密码)。
-
打开终端或命令提示符窗口,进入MySQL的安装目录。
-
输入以下命令登录到MySQL服务器:
mysql -u 用户名 -p
其中,用户名是MySQL用户名,-p 参数表示需要输入密码。
-
输入密码后,按回车键登录到MySQL服务器。
-
输入以下命令修改密码:
ALTER USER '用户名'@'localhost' IDENTIFIED BY '新密码'; # 刷新权限 FLUSH PRIVILEGES;
-
修改密码成功后,输入以下命令退出MySQL服务器:
exit
结语
请根据具体情况选择适当的方法并确保设置的新密码,无论使用哪种方法修改密码,请确保新密码的安全性,避免使用过于简单或容易被猜到的密码。另外,建议定期修改密码,以增加数据库的安全性。如果不确定自己的MySQL版本,可以使用 mysql --version
或 mysql -V
来 检查。无论哪种情况,重置MySQL密码后,请务必妥善保管新密码,并确保其他具有访问权限的用户也知道新密码。
转载自:https://juejin.cn/post/7393185003205525542