Linux中mysql密码重置

主要是为了解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

该错误发生于密码输入错误时,所以需要对密码进行重置。

第一种情况:你刚刚安装mysql,没有修改过初始/动态密码。

这种情况下mysql会自动生成一个动态密码,你找到该动态密码,修改为你自己的密码就行了

找原始密码:

有些有readme文档的,里面就有:

否则就进入mysql的日志文件

vim /var/log/mysqld.log (每个人可能不一样,你们自己找)

找到下面这句话,密码在后面   

A temporary password is generated for root@localhost: 

注;如果找不到动态密码就看第二种情况

然后修改密码:

mysqladmin -u root -h 127.0.0.1 -p password

第二种情况,你找不到动态密码或者改过密码又忘了

1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:

vim /etc/my.cnf(注:windows下修改的是my.ini)

在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)

在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:

保存文档并退出:

:wq

2.然后我们需要重启MySQL:

/etc/init.d/mysql restart(或者/etc/init.d/mysqld restart)

有些用户可能不一样,自己查一下自己的重启mysql的命令

3.重启之后输入mysql即可进入mysql。

4.接下来就是用sql来修改root的密码

mysql> use mysql;
mysql> update user set password=password("你的新密码") where user="root";

(现在版本更新,password字段不能被识别,取而代之的是authentication_string,语句应更改为:

update user set authentication_string=password("你的新密码") where user="root" ;)
mysql> flush privileges;(刷新)
mysql> quit

到这里root账户就已经重置成新的密码了。

5.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

注:如果找不到找不到my.cnf或者my.ini文件

Linux:

windows:去安装目录下找my.ini

猜你喜欢

转载自blog.csdn.net/Ace_2/article/details/85680700