修改mysql密码,常用的几种方式

首页 2025-09-19 15:28:20


在 MySQL 中修改密码的方法因版本和登录状态不同而有所区别,以下是常用的几种方式:

一、登录状态下修改当前用户密码

适用于已登录 MySQL 客户端的情况

  1. MySQL 5.7 及之前版本

sql
SET PASSWORD = PASSWORD('新密码');
 

  1. MySQL 8.0 及之后版本

sql
ALTER USER USER() IDENTIFIED BY '新密码';
 

二、登录状态下修改其他用户密码

需要有修改用户权限(如 root 用户)

sql
-- 通用语法(MySQL 8.0+ 推荐)
ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';

-- 示例:修改 root 用户在本地登录的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password123';
 

三、忘记密码时重置(需要系统权限)

  1. 停止 MySQL 服务
    bash
    # Linux
    sudo systemctl stop mysql
    
    # Windows(服务方式)
    net stop mysql
    
     
  2. 跳过权限验证启动 MySQL
    bash
    # Linux
    sudo mysqld_safe --skip-grant-tables --skip-networking &
    
    # Windows
    mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --skip-grant-tables
    
     
  3. 无密码登录 MySQL
    bash
    mysql -u root
    
     
  4. 刷新权限并修改密码
    sql
    -- 刷新权限表
    FLUSH PRIVILEGES;
    
    -- 修改密码(MySQL 8.0+)
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    
    -- MySQL 5.7 及之前
    UPDATE mysql.user SET authentication_string = PASSWORD('新密码') 
    WHERE User = 'root' AND Host = 'localhost';
    
     
  5. 重启 MySQL 服务
    bash
    # Linux
    sudo systemctl restart mysql
    
    # Windows
    net start mysql
    
     

注意事项:

  • MySQL 8.0 引入了新的密码认证插件,推荐使用 ALTER USER 语法
  • 远程用户的主机名通常为 %(表示所有主机)
  • 密码应包含大小写字母、数字和特殊字符,提高安全性
  • 修改后建议立即用新密码测试登录,确保修改成功
nat123映射怎么用?超详细步骤,外网访问内网轻松搞定
nat123域名怎么用?两种方式轻松搞定
nat123怎么用?简单几步实现内网穿透
内网穿透工具对比:nat123、花生壳与轻量新选择
远程访问内网很简单:用对工具,一“箭”穿透
ngrok下载完全指南:从入门到获取客户端
内网远程桌面软件:穿透局域网边界的数字窗口
从外网远程访问内网服务器的完整方案
Windows Server 2008端口转发完全教程:netsh命令添加/查看/删除/重置
为什么三层交换机转发比Linux服务器快?转发表硬件加速的秘密