今天不小把 mysql.user 中的所有root都给删除了.... 忙活了半天,终于找到了办法,
mysql-version:mysql Ver 14.14 Distrib 5.1.31, for Win32 (ia32)
os: windos xp
1. net stop mysql # 停止mysql 服务
2. 编辑 $MySQL_HOME/my.ini,在[mysqld]的最后加入skip-grant-tables (关键在这里)
参考 http://topic.csdn.net/t/20030806/11/2114420.html ,别人2003年就知道的参数我还不清楚
3. net start mysql # 重启后的 mysql 就不再校验登录名了,即使 mysql.user 一行记录都没有,
也能成功登入
4. use mysql; # 我还是比较幸的, user 中还有几条记录,挑一个,改吧改吧,把所有的'N'都改成'Y',
用户名用 root ,host 用 localhost 就 o 了,推荐使用 mysql-query-browser,挺方便的,改后的
结果如下,如果哪位 truncate table user 了,可以使用下面插入root用户,而后再自行建立各个用户吧
insert into user values ('localhost', 'root', '*F9512AEF19DF2646ECB6F14B5D4E290060147ADC', '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', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0); -- 对应的密码是 studyh
总结: 通过以上方法,也可以改密码之类的,比如在第四步使用 set password for root =password('1'),就能够吧 root 的密码修改为 1 了,当然也可以 update user 了