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 新版本的安全规范。
nat123映射怎么用?超详细步骤,外网访问内网轻松搞定
nat123域名怎么用?两种方式轻松搞定
nat123怎么用?简单几步实现内网穿透
内网穿透工具对比:nat123、花生壳与轻量新选择
远程访问内网很简单:用对工具,一“箭”穿透
ngrok下载完全指南:从入门到获取客户端
内网远程桌面软件:穿透局域网边界的数字窗口
从外网远程访问内网服务器的完整方案
Windows Server 2008端口转发完全教程:netsh命令添加/查看/删除/重置
为什么三层交换机转发比Linux服务器快?转发表硬件加速的秘密