mysql 5.7 忘记密码重置
很多情况下许久不用Mysql或者服务器更换操作人员,都会丢失密码,网上最常见的重置方式是修改My*.cnf文件,位置如下:
vim /etc/my.cnf
在文件中加入 skip-grant-tables 用来跳过密码验证的过程。
但是这种方法适用于rpm安装mysql的情况,而像我的服务器早先通过二进制文件预装的情况下在 /etc下是找不到这个配置文件的,类似的配置文件存在于
/etc/mysql/my.cnf
这时候修改其中的My.cnf文件,增加两行:
[mysqld]
skip-grant-tables
增加这两行,重启mysql也不一定会有效。
我用的方法是:
先使用权限停止mysql服务
sudo /etc/init.d/mysql stop
为了保险起见再设置一下sql:
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"```
注意一下这里使用的systemctl命令,是因为 mysqld_safe命令在我的系统中找不到。
然后手动启动mysql服务:
sudo /etc/init.d/mysql start
然后登录root账户:
mysql -u root -p
不出意外的话会提示输入密码,直接无视敲空格,成功登陆。
然后刷新权限:
flush privileges;
修改密码:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;
quit;或者exit;退出,再使用vim /etc/mysql/my.cnf命令把 my.cnf中添加的skip-grant-table删除
有时候,在重新启动mysql服务的时候会报错:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
这时候首先确认机器是否安装了mysql-server:
sudo apt-get install mysql-serve
确认已安装的情况下,如果问题还存在,直接尝试启动启动mysql服务:
sudo /etc/init.d/mysql start