MySQL重置密码

Step 1:停止 MySQL 服务:

首先,确保 MySQL 服务已经停止。如果 MySQL 服务正在运行,可以使用以下命令停止它:

1
sudo systemctl stop mysql

Step 2:以跳过授权表启动 MySQL:

在 Ubuntu 上,可以通过以下步骤以跳过授权表的方式启动 MySQL 服务,从而可以修改 root 密码:

1
sudo mysqld_safe --skip-grant-tables --skip-networking &
  • --skip-grant-tables:跳过授权表,允许不需要密码即可登录 MySQL。
  • --skip-networking:跳过网络连接,仅允许本地连接。

Step 3:登录到 MySQL:

在跳过授权表的模式下,可以直接登录到 MySQL 服务器,而不需要密码:

1
mysql -u root

Step 4:修改 root 密码:

登录到 MySQL 后,使用以下 SQL 命令修改 root 用户的密码。将 new_password 替换为你要设置的新密码:

1
2
3
USE mysql;
UPDATE user SET authentication_string = PASSWORD('new_password') WHERE User = 'root';
FLUSH PRIVILEGES;

如果你使用的 MySQL 版本较新,可能会使用 ALTER USER 语句来更新密码:

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

如果你希望密码能够兼容旧版本的 MySQL,请使用 PASSWORD() 函数。

Step 5:退出 MySQL:

修改完密码后,通过以下命令退出 MySQL 客户端:

1
EXIT;

Step 6:重启 MySQL 服务:

修改完密码后,关闭跳过授权表的 MySQL 进程,并重新启动 MySQL 服务:

1
2
sudo systemctl stop mysql
sudo systemctl start mysql

Step 7:验证新密码:

使用新设置的密码登录到 MySQL 服务器,确保能够成功连接和执行操作:

1
mysql -u root -p

输入新设置的密码,如果能够成功登录,说明密码已经成功修改。