在完成MySQL5.7的安裝以後,若不進行初次密碼修改,我們不能進行一系列的操作,老是讓我們修改密碼。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before
mysql初始化密碼常見報錯問題
1. mysql5.6是密碼爲空直接進入數據庫的,但是mysql5.7就需要初始密碼
cat /var/log/mysqld.log | grep password
2. 然後執行 mysql -uroot -p
,輸入上面的到的密碼進入,用該密碼登錄後,必須馬上修改新的密碼,不然會報如下錯誤:
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
3. 如果你想要設置一個簡單的測試密碼的話,比如設置爲123456,會提示這個錯誤,報錯的意思就是你的密碼不符合要求
mysql> alter user 'root'@'localhost' identified by '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
這個其實與validate_password_policy的值有關。
validate_password_policy有以下取值:
默認是1,即MEDIUM,所以剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。
有時候,只是爲了自己測試,不想密碼設置得那麼複雜,譬如說,我只想設置root的密碼爲123456。
必須修改兩個全局參數:
首先,修改validate_password_policy參數的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
其次,validate_password_length(密碼長度)參數默認爲8,我們修改爲1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
4. 完成之後再次執行修改密碼語句即可成功
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)