(1)由於咱們的鏡像是linux環境下的,我所在的系統是windows系統.首先經過docker客戶端切換到linux環境下.mysql
(2)使用docker pull mysql/mysql-server 下載mysql鏡像;linux
(3)使用下載的鏡像啓動一個新的容器:docker run -d -p 3306:3306 --name mysqltest mysql/mysql-server.sql
本地端口3306映射到容器中的3306端口,容器名稱爲mysqltest。docker
(4)鏡像成功啓動:數據庫
(5)登陸到容器內部的mysql:windows
1.docker exec -it mysqltest bash;bash
2.mysql -uroot -p;ide
3.輸入密碼,登陸成功能夠進行操做了.(這個密碼咱們在建立容器的時候沒有指定,可是隨機幫咱們生成了一個。能夠經過docker logs mysqltest來查看.)spa
(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)鏈接成功: