MySQL GRANT命令執行時發生root權限錯誤問題

MySQL GRANT命令執行時發生root權限錯誤

 

在MySQL節點執行GRANT命令為SPIDER服務器進行授權時,發生瞭如下錯誤: 
 

引用

mysql> GRANT ALL ON *.* TO 'spider'@'spiderdb' IDENTIFIED BY 'spider'; 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

  www.aiwalls.com  

可是我就是使用root用戶登錄的,root的password也是空的,怎麼可能會發生這個錯誤呢。 

 

網上有相同的錯誤,是登錄不進MySQL的解決辦法。如果是忘記瞭密碼,可以用下邊的方法: 

引用

# /etc/init.d/mysql stop 

# mysqld_safe -u mysql –skip-grant-tables –skip-networking & 

# mysql -u mysql 

mysql> UPDATE user SET Password=PASSWORD('newpassword')where USER='root'; 

mysql> FLUSH PRIVILEGES; 

mysql> exit  www.aiwalls.com   

# /etc/init.d/mysqld restart 

# mysql -uroot -pnewpassword 

  www.aiwalls.com  

可是這個方法卻解決不瞭我的問題。 

 

網上還有一種辦法,刪除user.user中值為NULL的(delete from user where user is NULL),或更新NULL為test(update user set user=‘test‘ where user is NULL)。但是也不好使。 

 

偶然發現對於單個DB的授權是沒有問題的,難道是root沒有特定DB的權限?寫瞭個script對於每個database執行"GRANT ALL ON $DATABASE.* TO 'root'@'localhost' IDENTIFIED BY 'cps-pt' with grant option;",居然是information_schema的時候出錯瞭。 

 

前兩天同志執行dump/restore的時候,DB曾經死掉過,難道information_schema被破壞掉瞭。 

這好像是MySQL的一個restore時的bug。 

 

 

 

作者 秦朝古月

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。