天天看點

系統預設的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,如需轉載請自行聯系原作者