本篇內容抄自https://blog.csdn.net/qq_32448349/article/details/82428696,在這里做一下記錄
報錯信息:

1.首先查看防火牆狀態
防火牆版本的不同命令也會有不同
0.4的命令為
systemctl status firewall.service
0.5的命令為
systemctl status firewalld
防火牆沒有運行
2.命令登入服務器mysql
3.執行下面語句添加權限
use mysql;
select host, user, authentication_string, plugin from user;
查看user表的root用戶Host字段是localhost,說明root用戶只能本地登錄,現在把他改成遠程登錄
update user set host='%' where user='root';
4.刷新權限
所有操作后,應執行
FLUSH PRIVILEGES;
我到這里問題就已經解決了
執行后繼續連接發現還是報錯

查找問題后發現
MySQL8.0之前的版本密碼加密規則:mysql_native_password,
MySQL8.0密碼加密規則:caching_sha2_password
不一樣
5.修改mysql加密規則
輸入命令
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
加密規則改了也同樣設置密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新的密碼';
再試

