雲主機在Docker創建MySQL容器后本地Navicat連接出現:1251—Clients does not support authentication protocol……


首先在雲主機的docker創建Mysql容器的步驟:可參考官方操作

1. docker pull mysql:tags # 獲取mysql的鏡像,后面的tags是版本?如果不寫默認是latest,最近更新的那個 https://hub.docker.com/_/mysql?tab=tags

 

2. 啟動mysql鏡像 docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql #參數解析: #-p:設置端口映射,在虛擬機上,后面的3306是容器的端口,前面的是外部主機的訪問端口,如果不是設置這個映射規則的話,那么就無法訪問,雲主機上以此類推 #name: 自定義創建的容器名 #-e:為MySQL root user設置一個登錄密碼?如果不設置的話,就會創建失敗 #-d:所使用的鏡像,如果不設置tags默認就是latest

 

打開navicat,連接創建的數據庫,ip地址填雲主機的公網ip?(我也不太懂),如果你是第一次使用雲主機,尚未配置安全組之類的,要先配置安全組:https://cloud.tencent.com/document/product/213/18197

 

此時出現提示:(沒截到圖,圖片出處見水印)

原因應該是這篇博客里提到的:

“mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password, 所以需要把mysql用戶登錄密碼加密規則還原成mysql_native_password. ”

那就要進入到Mysql容器中修改對應的規則了。

https://blog.csdn.net/m0_37904728/article/details/78621191

 

1.  docker exec -it mysql bash
2. mysql -uroot -p

進入到Mysql命令行后

3. ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
4. flush privileges;

到此,可以在navicat中連接雲主機上的mysql容器了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM