最近一直在边学习边开发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表中的结构再进行更改。

如何在忘记mysql的登录密码时更改mysql登录的密码(window及linux)的更多相关文章

  1. Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

    Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...

  2. 如何更改mysql可执行路径及更改mysql数据库文件路径

    一.如何更改服务中MySQL的可执行文件路径: 解决方法:到注册表里HKEY_LOCAL_MECHINE---SYSTEM ---CurrentControlSet 更改查找一. MySQL项值,然后 ...

  3. mysql忘记密码时如何修改root用户密码

    1.关闭正在运行的MySQL服务. 2.打开DOS窗口,转到mysql\bin目录. 3. 输入mysqld --skip-grant-tables 回车.--skip-grant-tables 的意 ...

  4. Mysql操作命令出现错误时消除/mysql数据导入txt

    MySQL怎样取消错误命令 http://jingyan.baidu.com/album/546ae1851e9fd61149f28cef.html?picindex=6 mysql导入数据load ...

  5. sqlserver自带的导入导出工具,分别导入大批量mysql和oracle数据时的感受

    sqlserver自带的导入导出工具,分别导入大批量mysql和oracle数据时,mysql经常出现格式转换出错,不好导入  导入的数据量比较大时,还不如自己写个工具导入 今天在导oracle时,想 ...

  6. mysql数据库忘记密码时如何修改(一)

    方法/步骤 打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址 打开cmd命令提示符,进入上一步mysql.exe所在的文件夹. 输入命令  mysqld --skip-grant ...

  7. mysql数据库忘记密码时如何修改(转)

    当我们忘记mysql数据库密码时我们就无法正常进入数据库,也就无法修改密码,那么这时该怎么修改密码呢,这里教大家一个简单常用修改密码的方式. (如果图简单快速修改密码的话,直接跳过查询步骤,依照图上执 ...

  8. mysql忘记密码时,重新修改密码

    错误描述 1045 access denied for user 'root'@'localhost' using password yes 1045 access denied for user ' ...

  9. 当忘记mysql数据库密码时如何进行修改

    因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...

随机推荐

  1. 利用NET HUNTER建立一个自动文件下载的网络接入点

    免责声明:本文旨在分享技术进行安全学习,禁止非法利用. 本文中我将完整的阐述如何通过建立一个非常邪恶的网络接入点来使得用户进行自动文件下载.整个过程中我将使用 Nexus 9 来运行Kali NetH ...

  2. Python中的赋值和拷贝

    赋值 在python中,赋值就是建立一个对象的引用,而不是将对象存储为另一个副本.比如: >>> a=[1,2,3] >>> b=a >>> c= ...

  3. 在CentOS7上部署 Kubernetes集群

    yum -y install  etcd docker  flannel kubenetes 一般会遇到没有k8s源的问题,先 yum update -y 看是否有效,如果还是没用就创建yum 源,再 ...

  4. 【CF163E 】e-Government

    题目 两个\(log\)的树状数组套树剖? 我们对于给出的\(n\)个模式串建立\(AC\)自动机,之后对于每一个询问串直接丢上去匹配 如果这里是暴力的话,我们直接一路跳\(fail\)累加作为结束位 ...

  5. 【转】使用URL SCHEME启动天猫客户端并跳转到某个商品页面的方法

    在项目中遇到了这样一个需求:让用户在手机应用中,点击一个天猫的商品链接(知道商品在PC浏览器里的地址),直接启动天猫的客户端并显示这个商品.以前曾经实现过类似的功能,不过那次是淘宝的商品,天猫和淘宝的 ...

  6. Hadoop学习之路(三)Hadoop-2.7.5在CentOS-6.7上的编译

    下载Hadoop源码 1.登录官网 2.确定你要安装的软件的版本 一个选取原则: 不新不旧的稳定版本 几个标准: 1)一般来说,刚刚发布的大版本都是有很多问题 2)应该选择某个大版本中的最后一个小版本 ...

  7. Java和Python安装和编译器使用

    java 一.安装jdk时第二次选择安装目录时,这是在安装jre,可以直接取消. 二.配置三个环境变量(在WIN7下) 右键我的电脑>属性>高级系统设置>环境变量>系统变量. ...

  8. [Java123]Gradle

    https://dzone.com/articles/gradle-vs-maven https://docs.gradle.org/current/userguide/what_is_gradle. ...

  9. openstack常用的一些命令

    查看rabbitmq 队列 rabbitmqctl list_queues 复制代码 查看keystone的用户 keystone user-list 复制代码 查看keystone endpoint ...

  10. JDK(九)JDK1.7源码分析【集合】HashMap的死循环

    前言 在JDK1.7&1.8源码对比分析[集合]HashMap中我们遗留了一个问题:为什么HashMap在调用resize() 方法时会出现死循环?这篇文章就通过JDK1.7的源码来分析并解释 ...