2012-09-05 38 views
0

我的root用戶具有以下權限:「mysqld的」根拒絕訪問

mysql> SHOW GRANTS FOR [email protected]'%'; 
+--------------------------------------------------------------------------------------------------------------+ 
| Grants for [email protected]%                       | 
+--------------------------------------------------------------------------------------------------------------+ 
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' | 
| GRANT ALL PRIVILEGES ON `bedrock`.* TO 'root'@'%'               | 
+--------------------------------------------------------------------------------------------------------------+ 

當我嘗試執行下面的命令,我收到以下錯誤信息:

mysqladmin root -pSOMEPASSWORD 
mysqladmin: connect to server at 'localhost' failed 
error: 'Access denied for user 'root'@'localhost' (using password: YES)' 

雖然我能夠正常執行mysql命令,我無法做到mysqld。有什麼問題?謝謝。

+1

IIRC'根@」 %''和'root @'localhost''不一樣,你有沒有檢查localhost的權限? – arturo

回答

0

對於知識基礎的改善: 問題是在權限和命令。它在呼叫bin/mysqld_safe --user=mysql而不是mysqladmin root -pSOMEPASSWORD時有效。請注意,用戶mysql已通過chown -R和chgrp -R獲得權限。

2
  1. 您可能在數據庫中沒有密碼的用戶。 Start mysql in safe mode然後檢查以確保您的用戶沒有空密碼字段。如果找到,請添加密碼或刪除用戶。
  2. 這可能是密碼不正確,需要改變
+0

事實上,這是一個權限問題,作爲我自己在這個主題中的答案。感謝您的幫助! (我已經投票了!) – Alex

0

試試這個:

$ mysqladmin -u root -p password yourChosenPassword 
Enter password: 

,並在提示重新輸入相同的選擇密碼,然後你就可以在命令行調用中mysqladmin:

$ mysqladmin -uroot -pyourChosenPassword [OPTIONS] command command....