在 MySQL 中修改密码的方法有多种,具体取决于你的 MySQL 版本和登录状态。以下是几种常用的改密码方式:
适用于已登录 MySQL 客户端的情况:
ALTER USER CURRENT_USER() IDENTIFIED BY '新密码';
SET PASSWORD = PASSWORD('新密码');
FLUSH PRIVILEGES;
需要有管理员权限(如 root 用户):
ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';
ALTER USER 'root'@'%' IDENTIFIED BY 'NewPassword123!';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
FLUSH PRIVILEGES;
说明:主机名 通常是 localhost(本地)或 %(所有远程主机),可通过 SELECT user, host FROM mysql.user; 查看。
如果忘记密码,可通过跳过权限验证的方式重置:
sudo systemctl stop mysql
net stop mysql
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysqld --console --skip-grant-tables --shared-memory
mysql -u root
-- MySQL 8.0+
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
-- MySQL 5.7 及更早
UPDATE mysql.user SET authentication_string = PASSWORD('新密码')
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
sudo systemctl restart mysql
net start mysql
如果只是临时需要登录,可通过配置文件跳过密码输入:
-
创建 / 编辑 MySQL 配置文件:
-
Linux:
~/.my.cnf
-
Windows:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini(或 %APPDATA%\my.ini)
-
添加以下内容:
[client]
user=root
password=你的密码
-
保存后,直接输入 mysql 即可登录。
-
MySQL 8.0+ 密码认证插件默认是
caching_sha2_password,部分旧工具可能不兼容,可改为旧插件:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
-
密码应包含大小写字母、数字和特殊字符,提高安全性。
-
修改密码后,确保应用程序配置中的数据库密码同步更新。
根据你的具体场景选择合适的方法,常规情况下推荐使用 ALTER USER 命令修改密码,更符合 MySQL 新版本的安全规范。