連接云服務器mysql失敗,可能是因為ip發生改變,被mysql攔截。
我自己前后做了兩件事。大家趕時間可直接從二開始,不放心的就從一開始到結束
一、在云服務器實例中為當前ip配置安全組權限。
1.找到當前服務器的實例,進入安全組。為其增加規則
2.訪問來源點擊直接選擇我的ip就行,配置完成后一半兩分鐘就會生效,如果到這里還不能連接,請接著往下做。
二、在mysql為當前ip授權
1.通過工具連接云服務器(finalshell、xshell)
2.查看正在運行的鏡像
記錄下mysql 的 CONTAINER ID
docker ps
3.進入mysql容器
docker exec -it mysql容器id bash
mysql -u root -p
4.查看當前授權記錄
SELECT host, user FROM mysql.user;
5.先創建用戶并設置密碼:
CREATE USER 'root'@'你本次被攔截的的IP地址' IDENTIFIED BY '你的mysql密碼';
6.再授權
GRANT ALL PRIVILEGES ON *.* TO 'root'@'你本次被攔截的的IP地址' WITH GRANT OPTION;
7.刷新
FLUSH PRIVILEGES;
再次測試連接mysql,如果出現了2058錯誤,是因為 MySQL 8.0 及以上版本默認使用?caching_sha2_password
?身份驗證插件,而 SQLyog 等一些舊客戶端可能不支持該插件則按以下方法執行即可解決。
修改用戶的身份驗證插件
ALTER USER 'root'@'你本次被攔截的的IP地址' IDENTIFIED WITH mysql_native_password BY '你的密碼';
刷新
FLUSH PRIVILEGES;
到此問題解決,希望對大家有幫助