2017-08-05 145 views
0

我的MySQL版本是19年7月5日,它檢查用戶數據時ALTER USER沒有努力改變root密碼

SELECT User, Host, HEX(authentication_string) FROM mysql.user; 

我發現,「根」不」有密碼,但我知道它的密碼。

現在我試着用

ALTER USER 'root'@'localhost' IDENTIFIED BY 'this is my password xxxxxxx'; 

事實證明,這個命令不工作分配上的密碼。但這個命令正在

UPDATE mysql.user SET authentication_string = PASSWORD('this is my password xxxxxxx') WHERE User = 'root' AND Host = 'localhost'; 

現在我試圖改變再次使用

ALTER USER 'root'@'localhost' IDENTIFIED BY 'this is my password xxxxxxx'; 

但而不是改變我的密碼,它引起了我的密碼(HEX)再次清空密碼。

我的MySQL有什麼問題嗎?

我試圖創建新用戶,使用ALTER USER分配密碼,它的工作原理!

爲什麼ALTER USER無法在「root」上工作?

使用不同的VPS,ALTER USER正常工作以更改「根」密碼。

回答

0

回答我自己的問題,似乎有一個錯誤。發生此問題是因爲我在安裝MySQL時設置密碼時使用了複製粘貼。在我卸載並重新安裝後,現在手動輸入密碼,此問題已消失。

這個問題,即使密碼「成功」設置使用

UPDATE mysql.user SET authentication_string = PASSWORD('this is my password xxxxxxx') WHERE User = 'root' AND Host = 'localhost';

,我可以看到,有使用

SELECT User, Host, HEX(authentication_string) FROM mysql.user;

我還是一個密碼有附加信息能夠無需密碼登錄使用mysql -u root

+0

不完全確定你在做什麼要做,但你應該檢查'user'表中的'plugin'列;默認情況下,'root'不是'mysql_native_password'(它將使用密碼)。 – Solarflare