MySQL数据库root密码如何更改?MySQL重设root密码的5种操作指南

蓮花仙者
发布: 2025-08-13 08:52:01
原创
954人浏览过

如果知道旧密码,可使用alter user语句或mysqladmin命令直接修改;若忘记密码,则需通过--skip-grant-tables或--init-file方式绕过验证重置密码。具体操作为:已知密码时,登录mysql执行alter user 'root'@'localhost' identified by '新密码';并刷新权限,或使用mysqladmin -u root -p '旧密码' password '新密码'命令修改;忘记密码时,先停止mysql服务,再以--skip-grant-tables模式启动,无需密码登录后执行flush privileges和alter user语句修改密码,最后正常重启服务;也可创建包含修改密码命令的sql初始化文件,通过--init-file参数启动mysql自动执行该文件完成密码重置,两种方法均能有效恢复对数据库的访问权限。

MySQL数据库root密码如何更改?MySQL重设root密码的5种操作指南

更改MySQL数据库的root密码,这事儿说起来简单,但真遇到忘记密码或者需要定期更新的场景,方法就得跟着变了。核心思路无非两种:一种是你还知道旧密码,那直接改就是了;另一种是密码彻底忘了,这时候就得想办法“绕过”验证,或者利用MySQL的一些安全模式特性来重置。选对方法,能让你省去不少麻烦。

解决方案

1. 使用

ALTER USER
登录后复制
语句(适用于已知旧密码或有足够权限的情况)

这是MySQL 5.7.6及更高版本推荐的方式,也是我个人最喜欢的一种,因为它语义清晰,符合SQL标准。如果你能以root用户身份登录MySQL,或者有其他用户拥有修改root密码的权限,这简直就是最优雅的方案。

mysql -u root -p
-- 输入当前root密码

-- 登录后执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES; -- 虽然ALTER USER通常会自动刷新,但手动刷新一下总是好的习惯,以防万一。
登录后复制

注意,

'root'@'localhost'
登录后复制
表示本地连接的root用户。如果你有其他主机名或IP地址的root用户,记得把
localhost
登录后复制
替换成对应的主机名或
%
登录后复制

2. 使用

mysqladmin
登录后复制
登录后复制
命令行工具(适用于已知旧密码)

mysqladmin
登录后复制
登录后复制
是MySQL自带的一个管理工具,在命令行下操作起来非常直接。如果你习惯在终端里一气呵成,这个方法就很方便。

mysqladmin -u root -p '旧密码' password '你的新密码'
登录后复制

如果你的旧密码包含特殊字符,可能需要用引号包裹起来。这个命令执行后,会直接更新密码。对我来说,这种方式的优点是快捷,不用进入MySQL客户端。

3. 通过跳过授权表(

--skip-grant-tables
登录后复制
登录后复制
)重置密码(适用于忘记密码)

这是“忘记密码”场景下的经典招数,有点像Windows安全模式,绕过权限验证,直接进去改。操作时需要停掉MySQL服务。

  • 停止MySQL服务:

    # 根据你的系统,可能是:
    sudo systemctl stop mysql
    # 或者
    sudo service mysql stop
    登录后复制
  • 启动MySQL,跳过授权表:

    sudo mysqld_safe --skip-grant-tables &
    # 或者如果你是SystemD系统,可能需要这样:
    # sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
    # sudo systemctl start mysql
    # 然后再取消设置:
    # sudo systemctl unset-environment MYSQLD_OPTS
    登录后复制

    mysqld_safe
    登录后复制
    会在后台运行MySQL实例。

  • 无需密码登录MySQL并修改密码:

    mysql -u root
    -- 登录后执行:
    FLUSH PRIVILEGES; -- 这一步至关重要,让MySQL重新加载权限表
    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
    登录后复制
  • 停止MySQL并正常启动:

    sudo killall mysqld_safe # 如果你用的是mysqld_safe
    # 或者
    sudo systemctl stop mysql # 如果你用的是SystemD
    sudo systemctl start mysql
    登录后复制

    现在,你可以用新密码登录了。这个方法虽然有点“暴力”,但非常有效。

4. 使用初始化文件(

--init-file
登录后复制
)重置密码(适用于忘记密码,更自动化)

这个方法和

--skip-grant-tables
登录后复制
登录后复制
类似,都是为了在忘记密码时重置,但它更适合自动化脚本或者你想一次性执行多条命令的场景。它在MySQL启动时执行一个SQL脚本。

  • 停止MySQL服务。

  • 创建一个临时SQL文件,例如

    reset_password.sql
    登录后复制
    登录后复制

    -- reset_password.sql
    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
    FLUSH PRIVILEGES;
    登录后复制

    请确保这个文件的权限设置得当,不要让不该看的人看到密码。

  • 启动MySQL,并指定初始化文件:

    sudo mysqld_safe --init-file=/path/to/reset_password.sql &
    # 或者对于SystemD:
    # sudo systemctl set-environment MYSQLD_OPTS="--init-file=/path/to/reset_password.sql"
    # sudo systemctl start mysql
    # sudo systemctl unset-environment MYSQLD_OPTS
    登录后复制

    MySQL启动后会自动执行

    reset_password.sql
    登录后复制
    登录后复制
    中的命令。

  • 停止MySQL并正常启动。

    sudo
    登录后复制

以上就是MySQL数据库root密码如何更改?MySQL重设root密码的5种操作指南的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号