您的位置:首页 > 运维架构 > Linux

centos mysql root用户登录失败解决方法

2016-06-21 23:40 375 查看
由于问题出现了好几次,每次的解决方法都是在网上搜,以至于,现在随手也能更新user表了。。。

第一次是因为在mysql里没exit虚拟机就被我强行关掉了。后来恢复了虚拟机,mysql用root账号密码怎么都进不去,show databases自己建立的数据库也看不见。不知道别人是不是也会出现这样的问题。。。无可奈何,小菜鸟第一个想到的就是csdn。

解决方法:

关闭mysql服务

service mysqld stop

安全模式进入mysql

mysqld_safe --skip-grant-table

另外开一个命令窗口

mysql -u root mysql

这样root用户就不需要密码进入了mysql

接下来,更新user表

先看看用户、host和密码,sql语句,啰嗦一句,sql语句结束要跟着英文下的分号哦。。

select user,host,password from user;

更新表,sql语句

update user set password = password("要设置的密码") where user='root';

使更改生效

flush privileges;

退出

exit或者\q

之后,再一次mysql -u root -p ,键入刚设置的密码,应该会出现你想象中的结果。

--------------------------------------------------------------------------

--------------------------华丽的分割线------------------------------

--------------------------------------------------------------------------

后来又出现了问题,是在mysql下的user表中添加了一个"%“的host,作用似乎是让tomcat可以从外网访问mysql。。。

莫名其妙有一天不知道是因为又强行关闭了mysql还是其他什么原因,mysql root又登不进去了。。。看到了帖子说是因为我的user表中有user为空的行,删掉就行了。

于是select出结果,果然有user字段为空的行,而且我还有两个localhost的host字段。。以至于后来为了删掉一个又执行了上面的命令。。。后来问题解决,不知道下一次又是什么样的问题,菜鸟好难。。(笑哭)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: