系统默认的MySQL用户名消失的解决方法(修正版)

修改MySQL下的默认mysql数据库的user表,删除所有host为localhost记录,另 外添加一些其他记录,重新启动MySQL服务器。执行show databases,只出现information_schema和test两个数据库,看不到mysql。

解决方法:

此问题实际上是用户没有权限: 

1. 关闭mysql

2. 启动mysql: mysqld_safe --skip-grant-tables

在数据库名mysql下的user表中,修改相应权限,比如:

INSERT INTO `user` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);

我说一下我的问题,我是把host为localhost直接给update成%,密码为zhenglang0813,这下就造成只能从别的机器上登录了,本机不能登录,我只能在别的机器上登录后执行如下命令,才使得本地登录成功,记住一点*需要转义。

insert into user values
('localhost','root','\*E8013AD6199C4BE6DB5ACC99A81E402D0BB87CDB','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0','0')
  操作完成记得flush privileges;


本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/376745,如需转载请自行联系原作者

上一篇:云服务器linux系统与windows怎么选择?一般那种系统好?


下一篇:Intel Optane P4800X评测(3):Windows绑核优化篇