下面为您详细讲解在 Linux 下 MySQL 忘记密码的解决方法。
解决方法
方法一:通过忘记密码向导重置密码
-
停止 MySQL 服务:
sudo systemctl stop mysql
-
在启动时将 MySQL 服务配置成跳过授权表(即跳过密码验证)模式启动,并设定一个新密码:
shell
sudo mysqld_safe --skip-grant-tables & # 跳过授权表模式启动 mysql 服务
mysql # 登录到 MySQL 数据库
UPDATE mysql.user SET authentication_string = PASSWORD('your_new_password'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
exit; # 退出 MySQL 数据库
sudo pkill mysqld # 关闭 MySQL 服务
-
启动 MySQL 服务:
sudo systemctl start mysql
-
用新密码登录 MySQL 数据库:
mysql -u root -p(your_new_password)
。 -
更改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';
-
退出 MySQL 数据库,重新启动 MySQL 服务:
sudo systemctl restart mysql
。
方法二:重置 MySQL root 用户密码
如果上一种方法不起作用,可以尝试使用如下命令重置 MySQL root 用户密码:
sudo systemctl stop mysql # 停止 MySQL 服务
sudo mysqld --skip-grant-tables --skip-networking & # 跳过授权表和网络连接是安全的
mysql -u root # 登录到 MySQL 数据库
USE mysql;
UPDATE user SET authentication_string=PASSWORD('your_new_password') WHERE User='root';
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit; # 退出 MySQL 数据库
sudo pkill mysqld # 关闭 MySQL 服务
sudo systemctl start mysql # 重启 MySQL 服务
如果您的数据库有多个用户,则对应更改第 5、6 行处的 User='root'
(例如:User='example'
)即可。
示例说明
示例一:通过忘记密码向导重置密码
当您在 Ubuntu 18.04 上的 MySQL 服务器中忘记密码时,您可以按照以下步骤重置密码:
- 停止 MySQL 服务:
shell
sudo systemctl stop mysql
- 以跳过授权表模式启动 MySQL 服务器,并设定一个新密码:
shell
sudo mysqld_safe --skip-grant-tables & # 跳过授权表模式启动 mysql 服务
mysql # 登录到 MySQL 数据库
UPDATE mysql.user SET authentication_string = PASSWORD('your_new_password'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
exit; # 退出 MySQL 数据库
sudo pkill mysqld # 关闭 MySQL 服务
- 启动 MySQL 服务:
shell
sudo systemctl start mysql
- 使用新密码登录 MySQL 数据库:
shell
mysql -u root -p(your_new_password)
示例二:重置 MySQL root 用户密码
如果无法通过忘记密码向导进行密码重置,可以尝试以下方式:
- 停止 MySQL 服务:
shell
sudo systemctl stop mysql
- 以忽略授权表和网络连接启动 MySQL 服务器,并登陆到 MySQL 数据库:
shell
sudo mysqld --skip-grant-tables --skip-networking &
mysql -u root
- 在 MySQL 数据库中更改 root 用户的密码:
shell
USE mysql;
UPDATE user SET authentication_string=PASSWORD('your_new_password') WHERE User='root';
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit;
- 重新启动 MySQL 服务器:
shell
sudo systemctl start mysql
通过以上两种方式,您就可以轻松重新设置 Linux 下 MySQL 的密码了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下mysql忘记密码的解决方法 - Python技术站