重置mysql密码的正确方法

发布时间:2020-12-17编辑:脚本学堂
介绍下重置mysql数据库密码的正确方法,有需要的朋友做个参考。

关键:在使用skip-grant-tables参数的同时,还要加上skip-networking参数:
 

复制代码 代码示例:
shell> mysqld_safe --skip-grant-tables --skip-networking &
 

接着使用sql重置密码后,记得去掉skip-networking,以正常方式重启mysql服务:
 

复制代码 代码示例:
shell> /etc/init.d/mysqld restart
 

上面的方法需要重启两次服务。

下面的方法重启一次即可:

首先,需要把用到的sql语句保存到一个文本文件里(/path/to/init/file):
 

复制代码 代码示例:
update `mysql`.`user` set `password`=password('yourpassword') where `user`='root' and `host`= '127.0.0.1';
flush privileges;
 

接着,使用init-file参数启动mysql服务,
 

复制代码 代码示例:
shell> /etc/init.d/mysql stop
shell> mysqld_safe --init-file=/path/to/init/file &
 

此时,密码就已经重置了,最后别忘了删除文件内容,免得泄露密码。

提示:本文用到的参数都是通过命令行mysqld_safe传递的,实际上也可以通过my.cnf。

联想:是否可以通过init-file来初始化一个数据库或者导入数据呢?