修改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 语法
  • 远程用户的主机名通常为 %(表示所有主机)
  • 密码应包含大小写字母、数字和特殊字符,提高安全性
  • 修改后建议立即用新密码测试登录,确保修改成功
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道