mysql密碼過期怎么解決
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),建寧企業(yè)網(wǎng)站建設(shè),建寧品牌網(wǎng)站建設(shè),網(wǎng)站定制,建寧網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,建寧網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
1,用mysql命令行登錄mysql的root用戶
2,重新修改root密碼 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
mysql 5.7增加了兩個(gè)字段password_last_changed、password_lifetime來完善安全策略。
上面的方法僅僅治標(biāo)不治本。
可以設(shè)置參數(shù)default_password_lifetime來延長(zhǎng)使用期限
注明mysql版本:V5.7.10
請(qǐng)使用root用戶命令行登錄(命令行登錄不存在過期)。
登陸后直接輸入 set password = password(‘123456’);
再次使用客戶端訪問,發(fā)現(xiàn)可用。
這種情況需要修改指定用戶的password。
以root@% 為例 set password for 'root'@'%' = password('123456');
再次使用客戶端訪問,發(fā)現(xiàn)可用。
1、以下這種方式不能解決密碼過期問題
update mysql.user set authentication_string=password('123456') where user='root' and Host = '%';
2、修改password_last_changed不能解決密碼過期問題。
3、mysql早前的版本user表有password字段,5.7為authentication_string。
4、不需要重啟mysql服務(wù)器。
5、提醒一下,root@localhost和root@%不是同一個(gè)用戶。
查看用戶信息的sql如下,方便讀者復(fù)制:
select host,user,password_last_changed from mysql.user;
我們先來重新認(rèn)識(shí)一下 mysql.user 表中關(guān)于密碼過期的字段,
password_expired:從 MySQL 5.6.6 版本開始,添加了 password_expired 功能,它允許設(shè)置用戶的過期時(shí)間。
password_last_changed:密碼最后一次修改的時(shí)間。
password_lifetime:該用戶密碼的生存時(shí)間,默認(rèn)值為 NULL,除非手動(dòng)修改此用戶密碼過期機(jī)制,否則都是 NULL。
另外解釋一個(gè)參數(shù):
default_password_lifetime:從 MySQL 5.7.4 版本開始,此全局變量可以設(shè)置一個(gè)全局的自動(dòng)密碼過期策略。
1.設(shè)置密碼永不過期
2.手動(dòng)設(shè)置該用戶密碼為 30 day(它會(huì)自動(dòng)覆蓋密碼過期的全局策略)
3.設(shè)置密碼立馬過期
1.設(shè)置全局密碼過期時(shí)間:
2.創(chuàng)建用戶:
注:很多人一看這個(gè) password_lifetime 為什么沒有變,不應(yīng)該變成 90 嗎,是不是 mysql 的 bug,其實(shí)不然。
它的工作方式如下:
有一個(gè)全局系統(tǒng)變量 default_password_lifetime,它為使用默認(rèn)密碼生存期的所有帳戶指定策略。在系統(tǒng)表中這將存儲(chǔ)一個(gè) NULL。NULL 值被用作一個(gè)標(biāo)志,表明所涉及的帳戶沒有每個(gè)用戶密碼的特殊生存期。通過 ALTER USER password EXPIRE NEVER(將列設(shè)置為0)或 ALTER USER password EXPIRE INTERVAL N DAY(將列設(shè)置為 N)設(shè)置每個(gè)用戶的特殊密碼生存期。
因此,沒有設(shè)置特定密碼生存期的所有用戶的所有密碼生存期都將跟隨全局變量的值。