進(jìn)入MySQL之后,
輸入以下語句:
use mysql #更新域?qū)傩裕?update user set host='%' where user ='root';#執(zhí)行以上語句之后再執(zhí)行:
FLUSH PRIVILEGES;再執(zhí)行授權(quán)語句:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
然后外部就可以通過賬戶密碼訪問了。
mysql -u root -P 3306 -h 127.0.0.1 -p #回車后輸入密碼
FLUSH PRIVILEGES; 命令本質(zhì)上的作用是:
將當(dāng)前user和privilige表中的用戶信息/權(quán)限設(shè)置從mysql庫(MySQL數(shù)據(jù)庫的內(nèi)置庫)中提取到內(nèi)存里。
MySQL用戶數(shù)據(jù)和權(quán)限有修改后茎活,希望在"不重啟MySQL服務(wù)"的情況下直接生效,那么就需要執(zhí)行這個(gè)命令。
通常是在修改ROOT帳號的設(shè)置后贱除,怕重啟后無法再登錄進(jìn)來,那么直接flush之后就可以看權(quán)限設(shè)置是否生效媳溺。而不必冒太大風(fēng)險(xiǎn)月幌。
執(zhí)行完之后,再用Navicat連接mysql悬蔽,報(bào)錯(cuò)如下:
Client does not support authentication protocol requested by server扯躺;
Navicat 12版本不會報(bào)錯(cuò),可以直接跳過以下步驟
mysql8.0 引入了新特性 caching_sha2_password蝎困;這種密碼加密方式客戶端不支持录语;
客戶端支持的是mysql_native_password 這種加密方式;
可以用如下語句查看加密方式
select host,user,plugin from user;
查詢結(jié)果
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| % | root | caching_sha2_password |
| localhost | mysql.infoschema | mysql_native_password |
| localhost | mysql.session | mysql_native_password |
| localhost | mysql.sys | mysql_native_password |
+-----------+------------------+-----------------------+
看第一行禾乘,root加密方式為caching_sha2_password钦无。
可以使用命令將他修改成mysql_native_password加密模式:
update user set plugin='mysql_native_password' where user='root';
再次連接的時(shí)候,就成功了盖袭。