mysql忘记root密码,修改root密码

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: mysql数据库密码验证是特别的严格,因为关系数据安全,那么如果你的mysql数据库用户名或者密码记不清了,那么数据就丢失了吗?当然不是,开发者已经为我们用户考虑到了,如何解决呢?下面有一些找回用户名密码的方法,小白在此献丑了!

修改root密码的方法:
方法一:使用mysqladmin命令:

a. 没有设置过密码:
$mysql_home/bin/mysqladmin -u root password "newpass"

b. 设置过初始密码:
$mysql_home/bin/mysqladmin -u root password oldpass "newpass"

方法二:使用SQL语句修改数据库
首先使用的是像Linux的救援模式一样的超级管理模式

Ⅰ. 先停止mysql服务,然后,通过下面的方式进入超级管理模式

Ⅱ. 进入超级管理模式的方法:
a. $mysql_home/bin/mysqld --skip-grant-tables &

b. 修改mysql的配置文件(一般是/etc/my.cnf),在[mysqld]模块下添加skip-grant-tables,如下

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
datadir = /usr/local/mysql/var
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
query_cache_size = 128M
tmp_table_size = 128M
**skip-grant-tables**

然后,启动mysql

Ⅲ. 通过$mysql_home/bin/mysql免密码直接进入数据库,修改mysql.user表
通过下面的SQL语句修改root用户密码:
mysql 5.7以上的:
UPDATE mysql.user SET authentication_string=PASSWORD('admin') where USER='root';

mysql 5.7 以下的:有的mysql版本可能没有authentication_string字段,是password,改一下
UPDATE mysql.user SET PASSWORD=PASSWORD('admin') where USER='root';即可

修改完后记得刷新权限:

执行FLUSH PRIVILEGES;
退出mysql

Ⅳ. 停止$mysql_home/bin/mysqld --skip-grant-tables &进程(后台运行的进程),停止后台进程的方法详见:
https://blog.csdn.net/mounter625/article/details/6069194 或者 https://www.cnblogs.com/clsn/p/7744858.html
如果是修改配置文件启动mysql服务的,将配置文件还原(注释掉skip-grant-tables),然后重启即可。

Ⅴ. 通过刚修改的新密码连接数据库即可

方法三:和方法二相似通过SQL语句修改数据库的方式修改root密码的方法:
与方法二步骤大致相同,只是SQL语句不同。
进入超级管理模式,修改重启,重新连接即可。

由于SQL里保存密码都是加密的方式,所以,这种方法要使用加密后的密码修改,一般不建议使用,或者修改为空密码。

SQL语句:
将密码修改为空:
mysql 5.7以上版本:
UPDATE mysql.user SET authentication_string='' where USER='root';
mysql 5.7以下版本:
UPDATE mysql.user SET PASSWORD='' where USER='root';

将密码修改为123456:
mysql 5.7以上版本:
UPDATE mysql.user SET authentication_string='*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' where USER='root';
mysql 5.7以下版本:
UPDATE mysql.user SET PASSWORD='*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' where USER='root';

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 关系型数据库 MySQL
【赵渝强老师】解决MySQL丢失root用户密码
本文介绍了MySQL数据库中用户密码存储的变化,以及如何通过特殊方法重置root用户的密码。从MySQL 5.7版本开始,密码字段由“password”改为“authentication_string”。文章详细列出了重置密码的步骤,并提供了相关代码示例和视频教程。
|
5月前
|
数据可视化 关系型数据库 MySQL
Mysql8 如何在 Window11系统下完成跳过密钥校验、完成数据库密码的修改?
这篇文章介绍了如何在Windows 11系统下跳过MySQL 8的密钥校验,并通过命令行修改root用户的密码。
Mysql8 如何在 Window11系统下完成跳过密钥校验、完成数据库密码的修改?
|
5月前
|
SQL 关系型数据库 MySQL
mysql密码错误-ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)
这篇文章提供了解决MySQL数据库"Access denied for user 'root'@'localhost' (using password: YES)"错误的方法,通过跳过密码验证、修改root密码,然后重启服务来解决登录问题。
mysql密码错误-ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)
|
5月前
|
安全 关系型数据库 MySQL
在Linux中,如何重置 mysql root 密码?
在Linux中,如何重置 mysql root 密码?
|
5月前
|
安全 关系型数据库 MySQL
MySQL非root安装-初始化数据库时unknown variable ‘defaults-file=**/my.cnf‘
解决安装过程中出现的问题通常需要仔细地检查错误日志、配置文件和执行命令,保证各项配置设置的精确无误是顺利完成安装的关键。通过上述的步骤分析和解决方案,非root用户安装MySQL时遇到"unknown variable 'defaults-file=**/my.cnf'"的问题应该可以得到妥善的解决。
475 0
|
5月前
|
关系型数据库 MySQL 数据安全/隐私保护
【MySQL】手把手教你MySQL各版本忘记密码如何处理
【MySQL】手把手教你MySQL各版本忘记密码如何处理
|
16天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
41 3
|
16天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
45 3
|
16天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
59 2
|
29天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
200 15