簡體   English   中英

MySQL root用戶密碼設置為空字符串

[英]Mysql root user password set to empty string

我反復嘗試為root mysql用戶設置密碼,最初根本沒有密碼。 但是,重置之后,通過代碼從主題教程中找到了:

mysqld_safe --skip-grant-tables &
UPDATE user SET authentication_string=PASSWORD("mypasswordhere") where User='root';
FLUSH PRIVILEGES;

終端說我正確設置了密碼,但是當我嘗試使用密碼重新登錄時,它不起作用。 我發現這是將密碼設置為空字符串,有人知道為什么嗎?

我使用PASSWORD()函數設置密碼時遇到一些問題,因為激活了validate_password插件,為了繞過該插件,我在設置新密碼之前創建了authentication_string值。

您不需要在安全模式下運行mysql_safe --skip-grant-tables來更改密碼,只需正常啟動並嘗試以下操作:

# mysql -uroot

mysql> SELECT PASSWORD('HELLO');
+-------------------------------------------+
| PASSWORD('HELLO')                         |
+-------------------------------------------+
| *C1BCFD6877BB358C0518ECCD6D5A70BFF7D0A174 |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> use mysql;

mysql> update user set authentication_string="*C1BCFD6877BB358C0518ECCD6D5A70BFF7D0A174" where User='root';
mysql> flush privileges;
mysql> quit

# mysql -uroot -pHELLO

mysql> 

另一個簡單的解決方案是ALTER USER命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY '*C1BCFD6877BB358C0518ECCD6D5A70BFF7D0A174';

如果這些解決方案不起作用,請顯示命令的輸出以及您要測試的MySQL版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM