日期:2014-05-16  浏览次数:20933 次

mysql 想用root登录却变成匿名用户
新手一枚。
root的密码为空。匿名用户的密码为空。
用 mysql -u root或者mysql -u root -p 登录就变成匿名用户了。
无法查看到部分数据库。
创建数据库也出错。Access denied for user ''@'localhost' to database XXX。
网上很多的解决方法是:

方法一:
1.关闭mysql
  # service mysqld stop
2.屏蔽权限
  # mysqld_safe --skip-grant-table
  屏幕出现: Starting demo from .....
3.新开起一个终端输入
  # mysql -u root mysql
  mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
  mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
  mysql> \q

方法二:
1.关闭mysql
  # service mysqld stop
2.屏蔽权限
  # mysqld_safe --skip-grant-table
  屏幕出现: Starting demo from .....
3.新开起一个终端输入
  # mysql -u root mysql
  mysql> delete from user where USER='';
  mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
  mysql> \q




可我是在windows下啊。
另外。有想过先改root的密码,但都因为进不了mysql而无法修改。
求解决方法。

------解决方案--------------------
参考下贴三楼
http://topic.csdn.net/u/20090515/21/2b3c9a12-d8a5-4bb1-9895-6069cef5aef8.html