docker部署mysql Navicat遠程連接


docker部署mysql Navicat遠程連接


 

  1. docker search mysql   查看mysql鏡像(是去dockerHub網站搜素鏡像,遇到問題可以去該網站查看官方文檔,純英文文檔估計會看起來不爽^_^)

 


 

  1. docker pull 鏡像名稱[:tag]       

例如:

docker pull mysql:5.6  下載mysql5.6版本,不寫默認下載latest版本

 

我這里下載mysql官方鏡像(一般情況下載官方鏡像,stars也是最多的)  

 

 


 

  1. docker images  查看下載好的鏡像

 

 

  1. 啟動mysql實例

 

  

docker run --name mysql  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

    -name 為mysql的實例設置別名。 -p 3306為對外暴露的端口。3306是內部端口 

    -e MYSQL_ROOT_PASSWORD 設置mysql登錄密碼

   -d 以守護進程運行(后台運行) 最后的mysql是鏡像名稱

  


 

  1. docker ps -a   查看所有容器

   docker ps           查看正在運行中的容器

 

 

 


 

  1.  docker exec -it mysql bash     進入容器內部  mysql 是上邊運行時為容器取的別名 也可以用id替代

 

[root@localhost ~]# docker exec -it mysql bash 
root@c4d4d2015328:/#                 #已經進入容器 root@c4d4d2015328 【容器id】,進入后在操作和終端一樣了

  


 

  1. mysql -u root -p      然后直接輸入密碼即可 密碼是在運行時設置的

目前為止,mysql安裝完成,然而目前只能本機訪問,我們希望是遠程能連上

 

  1. grant all privileges on *.*  to 'root'@'%' ;   給用於授予權限

    GRANT ALL PRIVILEGES ON *.*  ‘root’@’%’ identified by ‘123123’ WITH GRANT OPTION 這是網上流傳較多的寫法。實際上會報錯的。

   flush privileges;  刷新權限

 

 


 

 

  1.  遠程連接mysql

然而我們用navicat還是不能連接mysql,提示:

 

1251-Client does not support authentication  protocol requested by server;

由於我安裝的是8.0.16版本

 

mysql 8.0版本以后 默認使用 caching_sha2_password 身份驗證機制 —— 從原來的 mysql_native_password 更改為 caching_sha2_password。 

從 5.7 升級 8.0 版本的不會改變現有用戶的身份驗證方法,但新用戶會默認使用新的 caching_sha2_password 。

客戶端不支持新的加密方式。

 

修改用戶的密碼和加密方式

 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密碼';

再刷新權限

 flush privileges;

 

再用navica連接

 

 

docker部署mysql 實現遠程連接,結束

 

 

 

 


免責聲明!

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



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