linux忘记mysql初始化密码解决方案
引言
之前刚装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 ]