關(guān)于在Ubuntu18里面修改MySQL5.7數(shù)據(jù)庫(kù)的登錄密碼來(lái)解決phpMyAdmin不能登錄的問(wèn)題

MySQL安裝好之后,有時(shí)候會(huì)不知道root密碼,有時(shí)候雖然設(shè)置了root密碼,但是用phpMyAdmin連接MySQL數(shù)據(jù)庫(kù)的時(shí)候,有總是提示”# SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
“,這是因?yàn)镸ySQL5.7以上數(shù)據(jù)庫(kù)已經(jīng)不允許用root用戶通過(guò)phpMyAdmin操作數(shù)據(jù)庫(kù)了,那么怎么辦?只需要再創(chuàng)建一個(gè)你的名字的超級(jí)用戶和密碼,再用這個(gè)密碼來(lái)登錄phpMyAdmin就OK了。具體操作步驟如下:

第一步,修改數(shù)據(jù)庫(kù)配置文件,跳過(guò)密碼檢查,登錄MySQL

#####打開MySQL的配置文件
vi /etc/mysql/mysql.conf.d/mysqld.cnf
#####在這個(gè)文件尾部加上以下兩行配置,來(lái)跳過(guò)密碼檢查
skip-external-locking
skip-grant-tables
#####重啟MySQL數(shù)據(jù)庫(kù)
sudo service mysql restart
#####再用命令行登錄MySQL就不用密碼了
mysql
#####最后所有問(wèn)題都解決后,記得回來(lái)把上面兩行配置刪除或者在每行配置前面講上#號(hào)來(lái)注釋掉

第二步,在MySQL命令中修改root用戶密碼

#####修改root用戶密碼(你需要把第二行里面的'ZhoJie_86-Pwd'修改成你自己的密碼)
mysql>use mysql;
mysql>update user set authentication_string=password('ZhoJie_86-Pwd') where user='root';
#####如果回車之后報(bào)錯(cuò),可能是你設(shè)置的root密碼太簡(jiǎn)單了,不符合MySQL中密碼復(fù)雜等級(jí)的要求,這里要么你設(shè)置一個(gè)很復(fù)雜的密碼,要么可以用下面這個(gè)命令來(lái)修改MySQL中密碼復(fù)雜等級(jí)
set global validate_password_policy=0;
#####上面最后一個(gè)數(shù)字,0為最簡(jiǎn)單的密碼等級(jí)、2為最復(fù)雜的密碼等級(jí),當(dāng)然還有其他很多類似的修改MySQL密碼規(guī)則的參數(shù)可以去調(diào)整
如果修改root密碼成功,需要用以下命令更新
mysql>flush privileges;
退出MySQL
mysql>quit;

第三步,在MySQL命令中修改密碼強(qiáng)度參數(shù)

#####可以通過(guò)以下命令來(lái)查看密碼強(qiáng)度
mysql> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM                     |
+----------------------------+
1 row in set (0.00 sec)

#####validate_password_policy
#####密碼強(qiáng)度檢查等級(jí),0/LOW、1/MEDIUM、#####2/STRONG。有以下取值:
#####Policy                Tests Performed
#####0 or LOW           Length
#####1 or MEDIUM    Length; numeric,lowercase/uppercase, and special characters
#####2 or STRONG    Length; numeric, #####lowercase/uppercase, and special characters; dictionary file      
#####默認(rèn)是1,即MEDIUM,所以剛開始設(shè)置的密碼必須符合長(zhǎng)度,且必須含有數(shù)字,小寫或大寫字母,特殊字符。

#####也可以通過(guò)以下命令來(lái)查看密碼強(qiáng)度的另外幾個(gè)參數(shù) 
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
6 rows in set (0.08 sec)

#####validate_password_dictionary_file
#####插件用于驗(yàn)證密碼強(qiáng)度的字典文件路徑。
#####validate_password_length
#####密碼最小長(zhǎng)度,參數(shù)默認(rèn)為8
#####validate_password_mixed_case_count
#####密碼至少要包含的小寫字母?jìng)€(gè)數(shù)和大寫字母?jìng)€(gè)數(shù)。
#####validate_password_number_count
#####密碼至少要包含的數(shù)字個(gè)數(shù)。
#####validate_password_special_char_count
#####密碼至少要包含的特殊字符數(shù)。

可以用以下命令來(lái)修改這些密碼強(qiáng)度參數(shù)
mysql>set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql>set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql>set global validate_password_number_count=3;
Query OK, 0 rows affected (0.00 sec)
 
mysql>set global validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql>set global validate_password_length=3;
Query OK, 0 rows affected (0.00 sec)

#####最后看看修改后的密碼強(qiáng)度參數(shù)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file    |       |
| validate_password_length             | 3     |
| validate_password_mixed_case_count   | 0     |
| validate_password_number_count       | 3     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 0     |
+--------------------------------------+-------+

第四步,在MySQL命令中創(chuàng)建一個(gè)新的超級(jí)用戶,用來(lái)登錄和操作phpMyAdmin

#####創(chuàng)建一個(gè)叫zhojie的超級(jí)用戶和zhojie的密碼(這里你需要修改zhojie為你自己的用戶名,ZhoJie_86-Pwd為你自己的密碼)
mysql>CREATE USER 'zhojie'@'localhost' IDENTIFIED BY 'ZhoJie_86-Pwd';
#####賦予zhojie這個(gè)用戶超級(jí)權(quán)限(同上,下面的zhojie也要修改成你自己的用戶名)
mysql>GRANT ALL PRIVILEGES ON *.* TO 'zhojie'@'localhost' WITH GRANT OPTION;
第五步,你再用你創(chuàng)建的這個(gè)用戶名和密碼登錄phpMyAdmin試試,應(yīng)該不會(huì)報(bào)上面的[1698]錯(cuò)誤了。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容