Docker 安裝MySQL以及外部訪問


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

     

 

     


免責聲明!

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



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