Linux中mysql密码重置
主要是为了解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 该错误发生于密码输入错误时,所以需要对密码进行重置。第一种情况:你刚刚安装mysql,没有修改过初始/动态密码。这种情况下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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)