mysql改密码,常用的改密码方式

首页 2025-09-22 10:42:54


在 MySQL 中修改密码的方法有多种,具体取决于你的 MySQL 版本和登录状态。以下是几种常用的改密码方式:

1. 登录 MySQL 后修改当前用户密码(通用方法)

适用于已登录 MySQL 客户端的情况:
sql
-- MySQL 5.7.6 及以上版本(包括 8.0+)
ALTER USER CURRENT_USER() IDENTIFIED BY '新密码';

-- MySQL 5.7.5 及更早版本
SET PASSWORD = PASSWORD('新密码');

-- 执行后刷新权限
FLUSH PRIVILEGES;
 

2. 登录时修改其他用户密码

需要有管理员权限(如 root 用户):
sql
-- 通用语法(MySQL 8.0+ 推荐)
ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';

-- 示例:修改 root 用户密码(允许所有主机登录)
ALTER USER 'root'@'%' IDENTIFIED BY 'NewPassword123!';

-- 示例:修改仅限本地登录的 root 用户
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';

-- 刷新权限
FLUSH PRIVILEGES;
 
说明:主机名 通常是 localhost(本地)或 %(所有远程主机),可通过 SELECT user, host FROM mysql.user; 查看。

3. 忘记密码时重置(Windows/Linux 通用)

如果忘记密码,可通过跳过权限验证的方式重置:

步骤 1:停止 MySQL 服务

bash
# Linux
sudo systemctl stop mysql  # 或 sudo service mysql stop

# Windows(管理员命令提示符)
net stop mysql
 

步骤 2:跳过权限启动 MySQL

bash
# Linux
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Windows(需切换到 MySQL 的 bin 目录)
mysqld --console --skip-grant-tables --shared-memory
 

步骤 3:无密码登录并修改密码

bash
# 登录 MySQL(无需密码直接回车)
mysql -u root

# 在 MySQL 终端执行(根据版本选择)
-- MySQL 8.0+
FLUSH PRIVILEGES;  # 刷新权限
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

-- MySQL 5.7 及更早
UPDATE mysql.user SET authentication_string = PASSWORD('新密码') 
WHERE User = 'root' AND Host = 'localhost';

# 再次刷新权限
FLUSH PRIVILEGES;
 

步骤 4:重启 MySQL 服务

bash
# Linux
sudo systemctl restart mysql

# Windows
net start mysql
 

4. 通过配置文件免密登录(临时方案)

如果只是临时需要登录,可通过配置文件跳过密码输入:
  1. 创建 / 编辑 MySQL 配置文件:
    • Linux:~/.my.cnf
    • Windows:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini(或 %APPDATA%\my.ini
  2. 添加以下内容:
    ini
    [client]
    user=root
    password=你的密码
    
     
     
  3. 保存后,直接输入 mysql 即可登录。

注意事项

  • MySQL 8.0+ 密码认证插件默认是 caching_sha2_password,部分旧工具可能不兼容,可改为旧插件:
    sql
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
    
     
     
  • 密码应包含大小写字母、数字和特殊字符,提高安全性。
  • 修改密码后,确保应用程序配置中的数据库密码同步更新。
根据你的具体场景选择合适的方法,常规情况下推荐使用 ALTER USER 命令修改密码,更符合 MySQL 新版本的安全规范。
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道