Docker 安裝mysql以及外部訪問

(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)鏈接成功:

     

相關文章
相關標籤/搜索