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;