MySQL重置密码
来源
原始文档: mysql 重置密码.18913525.md
核心内容
MySQL/MariaDB 数据库 root 密码重置方法。
方法一: 跳过权限表启动
# 1. 停止MySQL服务
sudo systemctl stop mysql
# 2. 以安全模式启动
sudo mysqld_safe --skip-grant-tables --skip-networking &
# 3. 无密码登录
mysql -u root
# 4. 重置密码(MySQL 5.7+)
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
# 或(MySQL 5.6)
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';
FLUSH PRIVILEGES;
# 5. 退出并重启服务
exit
sudo systemctl restart mysql
方法二: 使用init-file
# 1. 创建密码重置文件
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';" > /tmp/reset.sql
# 2. 使用init-file启动
sudo mysqld --init-file=/tmp/reset.sql &
# 3. 正常重启
sudo systemctl restart mysql
MariaDB 重置
# 停止服务
sudo systemctl stop mariadb
# 安全模式启动
sudo mysqld_safe --skip-grant-tables &
# 登录并修改
mysql -u root
USE mysql;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
FLUSH PRIVILEGES;
EXIT;
# 重启服务
sudo systemctl restart mariadb
关键要点
--skip-grant-tables跳过权限验证,安全风险高--skip-networking禁用网络连接,增强安全性- MySQL 8.0 使用 caching_sha2_password 认证插件
- 重置后务必正常重启服务
相关实体
- MySQL - 关系型数据库
- MariaDB - MySQL 分支
- SQL - 结构化查询语言
- 数据库管理 - DBA 操作