答案:修改MySQL的root密码有六种方法,取决于是否记得旧密码及MySQL版本。若记得旧密码,可用mysqladmin命令或ALTER USER、SET PASSWORD语句修改;若忘记密码,需使用--skip-grant-tables模式启动MySQL,跳过权限验证重置密码。MySQL 5.7.6及以上推荐ALTER USER,8.0版本需注意caching_sha2_password插件兼容性,可指定mysql_native_password插件以兼容旧客户端,重置后务必重启服务并刷新权限。

修改MySQL的root密码,在命令行下确实有好几种办法,具体用哪种,往往取决于你是否还记得旧密码,以及你用的MySQL版本。简单来说,如果你能正常登录,那改密码就是一句话的事;如果密码忘了,那就得走一套“曲线救国”的流程,让MySQL在启动时不检查权限,然后进去改。
我整理了六种在命令行下重设或修改MySQL root密码的方案,每种都有它的适用场景和一些需要注意的地方。
使用 mysqladmin
mysqladmin
mysqladmin -u root -p'旧密码' password '新密码'
这里需要注意,
-p
使用 SQL ALTER USER
mysql -u root -p
输入旧密码后,在MySQL提示符下执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
这个命令是MySQL 5.7.6版本之后引入的,也是8.0版本推荐的修改用户密码的方式。它更符合SQL标准,也更清晰地表达了“修改用户”的意图。我个人偏爱这种,因为它语义明确,出错的概率小。
使用 SQL SET PASSWORD
ALTER USER
SET PASSWORD
mysql -u root -p
在MySQL提示符下执行:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');或者对于某些版本,也可以直接:
SET PASSWORD = PASSWORD('新密码');(这会修改当前登录用户的密码)。需要注意的是,
PASSWORD()
ALTER USER
通过跳过权限验证表 (--skip-grant-tables
sudo systemctl stop mysql # 或者 service mysql stop
(具体命令取决于你的操作系统和MySQL安装方式)
sudo mysqld_safe --skip-grant-tables & # 或 sudo mysqld --skip-grant-tables &
(注意
&
systemctl
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" sudo systemctl restart mysql
(完成后记得
sudo systemctl unset-environment MYSQLD_OPTS
mysql -u root
--skip-grant-tables
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
-- 或者对于旧版本
-- UPDATE mysql.user SET authentication_string = PASSWORD('新密码') WHERE User = 'root';
-- FLUSH PRIVILEGES;exit; sudo systemctl stop mysql sudo systemctl start mysql
这一整套流程,虽然看起来步骤多,但非常实用。我个人觉得,作为DBA或者开发者,掌握这个是基本功。
针对 MySQL 8.0+ 的特定重置流程 (结合 ALTER USER
--skip-grant-tables
caching_sha2_password
--skip-grant-tables
ALTER USER
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码' PASSWORD EXPIRE NEVER; -- 如果需要强制指定认证插件,例如为了兼容旧客户端: -- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
PASSWORD EXPIRE NEVER
以上就是MySQL修改root密码有哪些命令?MySQL重设root密码的6种命令行方案的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号