(1)因為我們的鏡像是linux環境下的,我所在的系統是windows系統.首先通過docker客戶端切換到linux環境下.
(2)使用docker pull mysql/mysql-server 下載mysql鏡像;
(3)使用下載的鏡像啟動一個新的容器:docker run -d -p 3306:3306 --name mysqltest mysql/mysql-server.
本地端口3306映射到容器中的3306端口,容器名稱為mysqltest。
(4)鏡像成功啟動:
(5)登錄到容器內部的mysql:
1.docker exec -it mysqltest bash;
2.mysql -uroot -p;
3.輸入密碼,登錄成功可以進行操作了.(這個密碼我們在創建容器的時候沒有指定,但是隨機幫我們生成了一個。可以通過docker logs mysqltest來查看.)
(6)如果我們想嘗試在容器外部用Navicat Premium連接到容器中的mysql.會出現如下錯誤。這是正確的。這時候我們並沒有把容器中的環境設置權限供外部訪問.
(7)設置容器外部訪問數據庫權限:
1.我們不影響以前的用戶,所以我們單獨創建用戶並賦權,分別執行以下命令:
但首先得先更改root密碼(alter user 'root'@'localhost' identified by 'pwd123456';),否則會提示必須重設密碼.
use mysql后執行以下命令
create user 'danielyu'@'%' IDENTIFIED BY 'pwd123456'; grant all privileges on *.* to 'danielyu'@'%' with grant option;
2.這時候我們再嘗試在容器外連接數據庫.出現如下錯誤.這是因為我使用的數據庫版本是8.0.17.
現在驗證方式是caching_sha2_password作為身份驗證插件(相關鏈接:https://blog.51cto.com/fengfeng688/2147169?source=dra).我們改回 mysql_native_password
(3)連接成功: