MySQL是常用的关系型数据库,日常使用中修改密码和忘记密码是高频操作,mysqladmin作为MySQL自带的客户端工具,可快速完成密码修改,若忘记密码也有对应的重置方案。

一、使用mysqladmin修改MySQL密码
mysqladmin修改密码的前提是当前知道原密码,且拥有对应的权限,基本命令格式如下:
mysqladmin -u 用户名 -p旧密码 password 新密码
需要注意,如果原密码为空,可以省略-p旧密码部分,直接执行命令后按提示操作即可。下面是几个常见场景的示例:
1. 修改root用户密码(已知原密码)
假设原密码是123456,要修改为654321,执行以下命令:
mysqladmin -u root -p123456 password 654321
执行后会提示输入原密码,验证通过就完成修改。如果觉得明文写旧密码不安全,也可以省略旧密码部分:
mysqladmin -u root -p password 654321
执行后会先提示输入旧密码,输入正确后再设置新密码,安全性更高。
2. 修改普通用户密码
如果是修改其他用户比如test_user的密码,只需要替换对应的用户名即可,前提是当前登录的用户有修改该用户密码的权限:
mysqladmin -u test_user -p旧密码 password 新密码
二、忘记MySQL密码的处理方案
如果忘记了MySQL的密码,尤其是root密码,就无法通过常规方式登录,需要跳过权限验证来重置密码,不同系统的操作略有差异,下面以Linux系统为例说明完整流程。
1. 停止MySQL服务
首先需要停止正在运行的MySQL服务,不同安装方式的停止命令可能不同:
- 使用systemctl管理的服务:
systemctl stop mysqld - 使用service管理的服务:
service mysql stop
2. 跳过权限验证启动MySQL
停止服务后,需要以跳过权限表的方式启动MySQL,这样登录不需要密码:
mysqld --skip-grant-tables --user=mysql &
执行后MySQL会在后台运行,此时可以直接无密码登录数据库:
mysql -u root
3. 重置密码
登录成功后,先刷新权限,再修改密码,注意MySQL不同版本的密码字段和修改语句有区别:
MySQL 5.7及以上版本
5.7版本后密码字段是authentication_string,修改语句如下:
-- 切换到mysql系统库
USE mysql;
-- 刷新权限
FLUSH PRIVILEGES;
-- 修改root密码,假设新密码为new_password_123
UPDATE user SET authentication_string=PASSWORD('new_password_123') WHERE User='root';
-- 再次刷新权限
FLUSH PRIVILEGES;MySQL 5.6及以下版本
低版本的密码字段是password,修改语句如下:
USE mysql;
FLUSH PRIVILEGES;
UPDATE user SET password=PASSWORD('new_password_123') WHERE User='root';
FLUSH PRIVILEGES;4. 重启MySQL服务
修改完成后,先结束跳过权限的MySQL进程,再正常启动服务:
-- 查找mysqld进程并结束 ps -ef | grep mysqld kill -9 进程ID -- 正常启动MySQL服务 systemctl start mysqld
之后就可以用新设置的密码正常登录MySQL了。
三、操作注意事项
- 修改密码后建议测试登录,确认新密码可用再关闭操作窗口
- 跳过权限启动MySQL时,不要对外网开放端口,避免数据库被非法访问
- 如果是Windows系统,步骤类似,停止服务可以在服务管理器中操作,跳过权限启动需要在命令行执行
mysqld --skip-grant-tables - 密码建议设置包含大小写字母、数字和特殊字符的组合,提升安全性
注意:所有操作尽量在有权限的环境下执行,避免因为权限不足导致操作失败。
以上就是使用mysqladmin修改MySQL密码以及忘记密码后的完整处理方法,按照步骤操作即可顺利完成相关配置。
mysqladminMySQL密码修改MySQL忘记密码MySQL权限重置修改时间:2026-06-04 01:19:37