linux中mysql忘记密码解决办法

Posted haohaizi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中mysql忘记密码解决办法相关的知识,希望对你有一定的参考价值。

1. 关闭mysql服务,看到网上的很多说是用这个命令/etc/init.d/mysqld restart ,但是我在init.d文件夹中没有找到mysqld文件,所以在执行该命令的时候一直报错,然后换成了 sudo service mysql stop关闭mysql服务成功

2.安全模式下启动mysql  查看网上说的有两种方法第一种是直接用命令 

mysqld_safe --skip-grant-tables &

但是我在使用这个命令的时候也报错了。

 

第二方法(可行),修改mysql的配置文件

# vi /etc/my.cnf 
在[mysqld]的段中加上一句:skip-grant-tables 
例如: 
[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
skip-grant-tables 

 

3. 启动mysql服务

    我使用的命令是: sudo service mysql start

4. 修改root用户密码

   这个时候你可以直接在mysql中用命令行登陆进数据,也可以使用工具Navicat 

   使用Navicat工具更加便捷,我就直接使用工具 

   

配置好上面的数据连接,密码框中不用填写。
进入数据库后,打开mysql数据库查看user表中的数据


查看你的root账户的密码存的字段名称
在网上很多用的都是
UPDATE user SET Password = password ( \'new-password\' ) WHERE User = \'root\'

 

 这个sql语句,但是我发现我的密码存的不是Password字段中,所以最开始执行这个语句的时候一直都失败,打开表中一看这个密码是存在
authentication_string 字段中的,所以执行的sql语句换成
UPDATE `user` set authentication_string=PASSWORD(\'自己的密码\') where `user`=\'root\'  

 这个语句中的PASSWORD() 这个是数据的一个加密方法。

 

5. 把第二步修改的mysql配置中的skip-grant-tables 这一行去掉 (一定要去,要不让所有的人不要密码就可以直接进入数据库),还原成原来的样子。

6.用命令重启mysql服务: sudo service mysql restart

    

 

以上是关于linux中mysql忘记密码解决办法的主要内容,如果未能解决你的问题,请参考以下文章

linux下mysql的忘记root密码的解决办法

Linux下忘记MySQL密码的解决办法

linux mysql下忘记root密码解决办法

[笔记] MySQL5 忘记 root 密码的解决办法

MySQL忘记密码 或者误删除root用户有效解决办法

十mac 中登陆mysql忘记密码解决办法