故障現場:登錄到MySQL服務器,無論你執行什麼命令都報這個錯html
mysql> show databases; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> use test; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. ... ...
怎麼會這樣呢?難道我進的是假服務器?mysql
緣由分析:這個主要是由一個參數控制的 default_password_lifetime,看看官方的解釋sql
仔細看哈,Note信息有時候比上面的信息有用(英文的note我通常都是忽略的,有可能你忽略掉的那部分對性能也有幫助哦)服務器
問題解決:在開源的世界裏,咱們不怕報錯,有報錯纔有解決思路。下面來看下本身環境裏的微信
mysql> select version(); +--------------+ | version() | +--------------+ | 5.7.10-3-log | +--------------+ 1 row in set (0.01 sec) mysql> show variables like 'default_password_lifetime'; +---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | default_password_lifetime | 360 | +---------------------------+-------+ 1 row in set (0.00 sec)
soga,原來如此。那麼就修改密碼唄ide
alter user user() identified by "123456";
問題獲得解決!當前用戶能夠成功執行權限內的命令。性能
參考文檔:this
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_default_password_lifetimecode
https://dev.mysql.com/doc/refman/5.7/en/alter-user.htmlserver
思考:
一、若是mysql服務器有多個帳號,怎麼批量處理?
二、全部的版本都會有這樣的問題嗎?
爲了方便你們交流,本人開通了微信公衆號,和QQ羣291519319。喜歡技術的一塊兒來交流吧