MySQL中忘记用户密码怎么办?

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL中忘记用户密码怎么办?

在登录MySQL的时候,如果忘记密码了应该怎么办?对于不同的用户有不同的密码破解方式。

一、其他的普通用户

使用超级用户登录,直接去修改密码就可以了。

alter user 'cali'@'%' identified by 'xxxx';  

其中的xxxx是修改为你想改的密码。本质上是修改mysql库里的user表里的对应的用户的auth_string

二、超级用户

root@localhost :只能在本地登录。

①修改/etc/my.cnf :加入skip-grant-tables表示跳过密码验证。

②使用另外一个管理员账号

③修改停止mysqld服务---中断业务

1、破解MySQL的密码

第1步:停止MySQL进程的运行。

service mysqld stop

[root@mysql-2 mysql]# service mysqld stop
Shutting down MySQL.. SUCCESS!

第2步:修改配置文件。

vim /etc/my.cnf在其中加入一行:skip-grant-tables表示跳过密码验证

root@mysql mysql]# vim /etc/my.cnf
[mysqld]
user=mysql     #指定启动MySQL进程的用户
skip-grant-tables  #跳过密码验证(加入这一行)
#validate-password=off  #需要禁用密码复杂性策略

第3步:启动MySQL进程。

service mysqld start

[root@mysql mysql]# service mysqld start  启动MySQL进程
Starting MySQL. SUCCESS!

第4步:登录MySQL,不接密码。

mysql -uroot -p

[root@mysql-2 mysql]# mysql  -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25 Source distribution
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

在进入数据库中执行设置密码的命令:alter user 'root'@'localhost' identified by 'xxxx';这条命令时会报错。

mysql> alter user 'root'@'localhost' identified by  'xxxx'; --》会报错
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

所以需要先刷新权限在执行上面那条设置密码的命令。

flush privileges; 会加载原来没有加载的权限表(重新加载跳过的表)--》用户名和密码所在的表user等)

mysql> flush privileges; 刷新权限(会加载原来没有加载的权限表(重新加载跳过的表)--》用户名和密码所在的表user等)
Query OK, 0 rows affected (0.01 sec)

设置密码:两种方法(任选其一):xxxx是表示你要设置的新密码。

set password for 'root'@'localhost' = 'xxxxx';

alter user 'root'@'localhost' identified by 'xxxx';

mysql> set password for 'root'@'localhost' = 'xxxxx';    --》修改密码,指定用户名为root@localhost
Query OK, 0 rows affected (0.00 sec)
root@(none) 10:35  scmysql>alter user  'root'@'localhost'  identified by 'xxxx';
Query OK, 0 rows affected (0.00 sec)
#退出MySQL
mysql> quit
Bye

扩展:root@(none) 10:40 scmysql>    : mysql里完整的用户信息是 用户名@主机名。

第5步:重新修改mysql的配置文件

vim /etc/my.cnf

[mysqld]
socket=/data/mysql/mysql.sock
#user=mysql    --》注释掉
#skip-grant-tables           --》注释掉

记得将刚刚添加的注释掉,不能如果跳过密码验证的话,你是MySQL是不安全的哦。

第6步:刷新服务

service mysqld restart

[root@mysql-2 mysql]# service mysqld restart  #重新刷新服务
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS!

第7步:验证修改密码是否成功

使用你刚刚修改之后的密码重新登录数据库看密码是否修改成功。

[root@mysql-2 mysql]# mysql  -uroot -p'xxxxx'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.25 Source distribution
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

2、 另外一种方式(Windows软件中修改)

就是使用其他的管理员账号给别的用户重新设置密码。可以在SQLyog里操作。

SET PASSWORD FOR 'root'@'localhost' = 'xxxxx';

alter user 'root'@'localhost' identified by 'xxxxx';

以上就是忘记MySQL用户密码,修改密码的整个过程,希望你能记得住密码, 用不到这篇文章。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
关系型数据库 MySQL Apache
window下修改MySQL密码
window下修改MySQL密码
|
5月前
|
存储 关系型数据库 MySQL
MySQL 忘记root密码解决方案
【7月更文挑战第19天】
773 4
|
5月前
|
关系型数据库 MySQL 数据安全/隐私保护
windows mysql8 安装后 提示密码不对,修改下密码认证方式就可以了
windows mysql8 安装后 提示密码不对,修改下密码认证方式就可以了
1167 3
|
20天前
|
存储 关系型数据库 MySQL
【赵渝强老师】解决MySQL丢失root用户密码
本文介绍了MySQL数据库中用户密码存储的变化,以及如何通过特殊方法重置root用户的密码。从MySQL 5.7版本开始,密码字段由“password”改为“authentication_string”。文章详细列出了重置密码的步骤,并提供了相关代码示例和视频教程。
|
4月前
|
数据可视化 关系型数据库 MySQL
Mysql8 如何在 Window11系统下完成跳过密钥校验、完成数据库密码的修改?
这篇文章介绍了如何在Windows 11系统下跳过MySQL 8的密钥校验,并通过命令行修改root用户的密码。
Mysql8 如何在 Window11系统下完成跳过密钥校验、完成数据库密码的修改?
|
4月前
|
安全 关系型数据库 MySQL
在Linux中,如何重置 mysql root 密码?
在Linux中,如何重置 mysql root 密码?
|
4月前
|
SQL 关系型数据库 MySQL
mysql密码的初始化,修改与重置
【8月更文挑战第16天】在 MySQL 中,可通过特定步骤初始化、修改或重置密码: 1. **初始化密码**:适合首次安装或遗忘 root 密码。需先停用 MySQL 服务,以特殊模式启动(跳过权限表),登录后更新 root 用户密码,并重启服务。 2. **修改密码**:直接使用 `ALTER USER` SQL 语句或通过客户端工具如 MySQL Workbench 修改现有用户的密码。 3. **重置密码**:若遗忘密码且初始化方法不可行,则需停用服务、修改配置文件以允许无密码启动 MySQL,登录后更改密码,并恢复正常配置重启服务。
1125 2
|
4月前
|
关系型数据库 MySQL 数据安全/隐私保护
【MySQL】手把手教你MySQL各版本忘记密码如何处理
【MySQL】手把手教你MySQL各版本忘记密码如何处理
|
4月前
|
安全 关系型数据库 MySQL
如何在 MySQL 中导入和导出数据库以及重置 root 密码
如何在 MySQL 中导入和导出数据库以及重置 root 密码
52 0
|
4月前
|
SQL 关系型数据库 MySQL
Mysql80 密码忘记了怎么办
Mysql80 密码忘记了怎么办
71 0