如何在忘记mysql的登录密码时更改mysql登录的密码(window及linux)

简介: 如何在忘记mysql的登录密码时更改mysql登录的密码(window及linux)最近一直在边学习边开发java项目,理所当然的就少不了跟数据库打交道了,但是有时候就会脑子一短路,把mysql的登录密码给忘记了,这个时候我们又很急切的需要进到数据库中查看数据,那这个时候要怎么才能改密码呢,我就经历了一次这种情况,真的是不经历永远不知道有多么绝望的。
+关注继续查看

如何在忘记mysql的登录密码时更改mysql登录的密码(window及linux)
最近一直在边学习边开发java项目,理所当然的就少不了跟数据库打交道了,但是有时候就会脑子一短路,把mysql的登录密码给忘记了,这个时候我们又很急切的需要进到数据库中查看数据,那这个时候要怎么才能改密码呢,我就经历了一次这种情况,真的是不经历永远不知道有多么绝望的。在网上找了很多教程,都是比较零散的,所以决定把自己的经验整理一下,写下来,免得自己以后忘记了,如果有不足或者错误的地方,还请指出,共同学习,快乐coding。

  在改密码之前,我们需要先把mysql服务停止了。首先,我们先说说在Windows系统下如何在忘记MySQL密码的情况下如何去更改登录密码。对于大多数人而言,应该用的最多的就是Windows系统了,所以很多时候都是在Windows环境下进行开发的。最重要的!最重要的!最重要的!啊,重要的事情要说三遍,你要记得你的mysql安装路径,一般如果是默认的安装路径的话,就是在C盘的Program files这个文件夹下会有一个MySQL的文件夹,默认安装的MySQL就是在这里了,然后我们点进去,进入到一个叫MySQL server x.x的文件夹内,后面跟的是你对应安装的mysql版本号,可以看到如下图我的一个文档目录结构图,bin目录下主要是一些可执行文件了,include下主要是放得一些c++头文件,而lib目录下则放的是mysql的一些dll文件,而share目录下则是配置信息以及一些默认的SQL文件。重点的话我们就是放在bin文件以及my.ini或者my-default.ini这里。

  如果这个目录下没有my.ini或者my-default.ini这个文件的话,我们需要手动给他添加一个,这个文件是我们自己电脑上mysql的一些基础配置信息。如果这里没有的话,我们需要到C盘根目录下,进入到programdata这个文件下,如果在C盘看不到这个文件的话,我们需要到查看里,设置一下隐藏文件可见的选项,然后就可以看见了。这里的文档目录结构和上面是一样的,也是找到mysql->mysql server x.x,然后在这里就可以看到有一个my.ini文件了,我们直接把复制到我们的mysql安装目录下,就是上图的位置,粘贴的时候会提示一下我们需要管理员权限,同意一下就好。

  复制好my.ini文件之后,我们现在先不要关闭上面的文件窗口。现在我们来打开cmd窗口,一定要以管理员身份运行,一定要以管理员身份运行,一定要以管理员身份运行。然后利用cd命令,进入到我们的mysql安装目录下的bin目录下,大小写无所谓的,但是空格以及斜杠一定要主要,否则会提示找不到该目录。然后进入到该目录下后,我们输入如下命令:mysqld --skip-grant-tables--->回车。当然我们不cd到该目录下,直接运行命令也是可以的。

  在这里提示一下,如果我们没有将.ini这个文件复制到mysql的安装目录下,运行上面的命令时,会报如下错误,这个时候我们只需要将.ini文件复制过来后再运行上面的命令就好了。这个命令是可以让我们以任何身份进入到mysql中,也就是可以在不要进行身份验证的情况下进入数据库中,所以是很危险的,平时还是牢牢记住mysql密码吧。当我们在输入上述命令敲回车后,我们当前的窗口就处于不可编辑的状态了。

  这个时候我们再打开一个cmd窗口,然后直接输入mysql回车,这个时候神奇的事情就发生了,你会发现你不需要输入用户名和密码就进入到mysql中了。

  接下来就是进入到mysql数据库中的用户表中进行密码的更改了,如果对mysql有所研究的话,就知道在mysql中,所有的用户都是保存在mysql数据库中的user这张表里面,如果不知道数据库中有哪些数据库的话,我们可以用show databases命令查看mysql都有哪些数据库,然后使用use mysql命令选择mysql数据库,但是我们现在假设并不知道mysql数据库中都有哪些表,那么这个时候可以使用show tables命令查看当前数据库中都有哪些表。

  可以看到user表在最下面,我们先查看一下user表中都有哪些字段,直接select * from user;因为我们并不知道这张表中密码是哪个字段,不过即使我们使用select了,好像还是看不懂哪个字段保存的是我们的密码,别急,现在我就来揭秘吧!其实在mysql5.5还是哪个版本后,密码字段就改了,不再是password,而是改成了authentication_string了,所以现在知道密码字段了,那么就执行更改密码命令吧:update user set authentication_string=password('你的密码') where user = '需要更改密码的账号名';因为在mysql中,有一个对密码加密的方法,就是password(),而且你必须要使用这个方法来设置密码,如果你直接将新密码设置给authentication_string字段的话,到时候登录的时候就不能正确解析密码了,也就导致设置的密码是无用的。更改好密码之后,我们就可以关闭以上所有的窗口了,然后重启mysql服务,就可以用新密码登录进数据库了。到这里在Windows上更改mysql数据库密码就分享到这里了,下面将介绍一下在linux中如何修改mysql密码,很简单,远比在Windows中简单的多!

  在linux中更改mysql密码。在linux中需要找到mysql的安装位置,然后找到目录下的debian.cnf这个文件,利用vi工具打开,进去后可以看到这里面有一个mysql用户名和密码,这个是mysql默认提供在linux中的一个超级管理员,然后记住这个用户名,密码的话直接复制,防止记错,然后就退出,按照正常的登录mysql的方法登录mysql,只不过使用的账户是刚刚看到的这个。进去之后更改密码的方式就跟在Windows上是一样的了,同样的,如果是5.X以后的mysql版本的话,用户密码字段不是password了,改成了authentication_string,如果不知道,可以先查看一下user表中的结构再进行更改。

原文地址https://www.cnblogs.com/mufei/p/10579629.html

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
Linux
18.3 【Linux】登录文件的轮替(logrotate)
18.3 【Linux】登录文件的轮替(logrotate)
8 0
|
1天前
|
Linux 调度
18.2 【Linux】rsylog.service:记录登录文件的服务
18.2 【Linux】rsylog.service:记录登录文件的服务
9 0
|
1天前
|
Linux 网络安全 调度
第十八章、【Linux】认识与分析登录文件
第十八章、【Linux】认识与分析登录文件
10 0
|
1天前
|
Linux
16.5.6 【Linux】一个网络服务案例及登录文件协助
16.5.6 【Linux】一个网络服务案例及登录文件协助
8 0
|
12天前
|
弹性计算 安全 Linux
Linux系统的安全登录
本场景将提供1台Linux云服务器实例,通过使用SSH密钥对来实现Linux云服务器的安全登录。
19 0
|
1月前
|
算法 Shell Linux
linux实现SSH免密登录设置,以及shell脚本实现
linux实现SSH免密登录设置,以及shell脚本实现
72 0
|
1月前
|
Linux
如何在 Linux 终端上向登录用户发送广播消息?
如何在 Linux 终端上向登录用户发送广播消息?
31 0
如何在 Linux 终端上向登录用户发送广播消息?
|
1月前
|
缓存 网络协议 测试技术
一招教你快速学会Linux ssh连接免密登录
#编辑配置文件,在最后添加如下内容: AllowUsers student1 student2 #重启ssh服务后生效
62 0
|
1月前
|
关系型数据库 MySQL Linux
Linux登录mysql忘记密码Access denied for user ‘root‘@‘localhost‘ (using password: YES)错误
Linux登录mysql忘记密码Access denied for user ‘root‘@‘localhost‘ (using password: YES)错误
27 0
|
1月前
|
Linux 网络安全 开发工具
linux修改ssh的22端口并限制相关IP登录
linux修改ssh的22端口并限制相关IP登录
61 0
推荐文章
更多