你的MySQL密碼過時了嗎?

故障現場:登錄到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。喜歡技術的一塊兒來交流吧

相關文章
相關標籤/搜索