天天看點

docker部署mysql Navicat遠端連接配接

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

docker部署mysql Navicat遠端連接配接
docker部署mysql Navicat遠端連接配接
  1. docker pull 鏡像名稱[:tag]       

例如:

docker pull mysql:5.6  (下載下傳mysql5.6版本,不寫預設下載下傳latest版本)

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

docker部署mysql Navicat遠端連接配接
  1. docker images  檢視下載下傳好的鏡像

docker部署mysql Navicat遠端連接配接
  1. 啟動mysql執行個體

docker部署mysql Navicat遠端連接配接

1

2

3

4

5

6

7

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           檢視正在運作中的容器

docker部署mysql Navicat遠端連接配接
docker部署mysql Navicat遠端連接配接
  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      然後直接輸入密碼即可 密碼是在運作時設定的

docker部署mysql Navicat遠端連接配接

目前為止,mysql安裝完成,然而目前隻能本機通路,我們希望是遠端能連上

docker部署mysql Navicat遠端連接配接
  1. grant all privileges on *.*  to 'root'@'%' ;   給用于授予權限

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

   flush privileges;  重新整理權限

  1.  遠端連接配接mysql

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

docker部署mysql Navicat遠端連接配接

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 Navicat遠端連接配接

繼續閱讀