首页 > 技术文章 > linux忘记mysql初始化密码解决方案

cheneyboon 2021-04-19 22:04 原文

引言

  之前刚装mysql的时候,根据教程安装,然后初始化后没有记住密码,重启服务器后无法登录,于是今天就做个总结,顺便了解一下如何解决mysql忘记密码这个问题

方法

1、修改mysql的登录设置

  在[mysqld]的段中加上一句:skip-grant-tables

  例如:vim /etc/my.cnf

  注:这里有一个坑,就是vim和vi的使用,我的就不能用vi。

  [mysqld]

  datadir=/var/lib/mysql

  socket=/var/lib/mysql/mysql.sock

  skip-grant-tables

  保存并且退出vim。

2、重启mysql

  重新启动mysql,例如我的mysql安装在下面的路径,这里可以参考我之前装mysql的随笔:https://www.cnblogs.com/cheneyboon/p/14679153.html

  # /etc/init.d/mysql restart

 3、登录并修改mysql的密码

  我这里直接使用的是mysql安装路径,同样可以看我之前的随笔找自己的对应位置

# /usr/local/mysql/bin/mysql

   然后依次输入以下指令

mysql> USE mysql ;
mysql> update user set authentication_string=password("您要修改的密码") where user="root";  # 这里的密码可以自己选择
mysql> flush privileges ;
mysql> quit

 注:这里有一个坑就是不能输入下面命令进行修改密码,原因:MySQL5.7版本后,password这个字段被改成 authentication_string

mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;

4、将MySQL的登录设置修改回来

  # vim /etc/my.cnf
  将刚才在[mysqld]的段中加上的skip-grant-tables删除
  保存并且退出vim。

5、重新启动mysqld
  # /etc/init.d/mysql restart
  Stopping MySQL: [ OK ]
  Starting MySQL: [ OK ]

 

推荐阅读