Linux服务器重置Mysql密码,没有My.cnf文件的情况

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

你可能感兴趣的:(Linux服务器重置Mysql密码,没有My.cnf文件的情况)