注明mysql版本:V5.7.10
創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的猇亭網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
請使用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@%不是同一個用戶。
查看用戶信息的sql如下,方便讀者復(fù)制:
select host,user,password_last_changed from mysql.user;
因為mysql的用戶密碼一般一年就會過期一次。mysql的用戶密碼一般一年就會過期一次,如果記得這個規(guī)律,定期打開mysql表,mysql庫----user表---password_last_changed,將此項的當(dāng)時日期改成當(dāng)天前兩天的日期,每間隔幾個月記得進(jìn)來修改一下,就永遠(yuǎn)不會遭遇密碼過期問題無法登錄的bug煩惱。
近安裝mySQL5.7.9,發(fā)現(xiàn)安裝完后會自動生成一個隨機密碼,然后用sql工具登錄,發(fā)現(xiàn)這個密碼已經(jīng)過期了,不能登錄。
終于解決好了,這里分享下處理步驟:
1.先關(guān)閉mysql服務(wù);
2.進(jìn)入終端,輸入指令:cd /usr/local/mysql/bin/,進(jìn)入安裝目錄;
3.輸入指令:sudo su,切換到root用戶;
4.輸入指令:./mysqld_safe --skip-grant-tables ,禁止mysql驗證功能。此時mysql服務(wù)會自動重啟了;
5. 用工具(比如Sequal Pro)登錄mySQL。配置的時候,只配用戶名為root,密碼不配。
6. 登錄進(jìn)去以后,數(shù)據(jù)庫選擇mysql,修改user表下用戶名為root的那條記錄,將password_expired設(shè)為N。這樣隨機密碼就有效了,可以用密碼登錄了。
如果希望修改root密碼,則在登錄mysql后,執(zhí)行下面兩條sql即可:
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
flush privileges;
mysql密碼過期怎么解決
1,用mysql命令行登錄mysql的root用戶
2,重新修改root密碼 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
mysql 5.7增加了兩個字段password_last_changed、password_lifetime來完善安全策略。
上面的方法僅僅治標(biāo)不治本。
可以設(shè)置參數(shù)default_password_lifetime來延長使用期限