首先在雲主機的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容器了。