Docker最全教程之MySQL容器化 (二十五)

2022-01-17 dotNET跨平臺

前言                

MySQL是目前最流行的開源的關係型資料庫,MySQL的容器化之前有朋友投稿並且寫過此塊,本篇僅從筆者角度進行總結和編寫。

1.運行MySQL容器 

2.修改「root」帳戶的認證模式和密碼 


1. MySQL命令行工具 

2. Visual Studio Code的MySQL插件 

3. phpmyadmin 


MySQL是目前最流行的開源的關係型資料庫,因其高性能、可靠性和易用性而廣受開發者的歡迎,尤其是開放源碼這一特點,一般中小型網站的開發都會優先選擇MySQL作為網站資料庫。

與其他的大型資料庫例如Oracle、DB2、SQL Server等相比,MySQL雖然有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放源碼軟體,因此可以大大降低總體擁有成本。

MySQL的官方鏡像地址為:

https://hub.docker.com/_/mysql

接下來,我們使用PowerShell來運行MySQL鏡像。腳本如下所示:

docker run --name mysql `-e MYSQL_ROOT_PASSWORD=123456 `-p 3306:3306 `-d mysql

相關參數說明如下所示:

參數

描述

-e MYSQL_ROOT_PASSWORD=123456

此變量是必須的,用於指定MySQL超級管理員帳戶(root)的密碼。

-p 3306:3306

建立容器埠和主機埠的映射。MySQL默認埠為3306。

-d

在後臺運行容器並列印容器ID。

--name mysql

為容器指定一個自定義名稱,而不是使用隨機生成的名稱。 如果運行多個容器,則無法重複使用相同的名稱。

mysql

MySQL容器鏡像。

執行界面如圖所示:

同樣的,我們可以參考前面的章節使用數據卷或者主機目錄來完成MySQL的數據持久化,參考命令參數如下:


MySQL容器已經運行了,如果我們滿懷欣喜地使用Visual Studio Code的MySQL擴展插件去連接時,就會碰到這麼一個錯誤:

究其原因,其實就是MySQL新版本的「caching_sha2_password」授權認證模式的問題,我們將其改回「mysql_native_password」授權模式即可。

主要有以下幾步操作:

1)進入MySQL容器

docker exec -it mysql /bin/bash

2)使用MySQL命令行工具連接MySQL

mysql -h localhost -u root -p

需要輸入密碼:

3)修改「root」帳戶的認證模式

連接成功後,接下來我們就可以使用SQL語句來修改「root」帳戶的認證模式了:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

注意,最後的字符串「123456」為「root」帳戶的密碼。

4)驗證外部連接

同樣的,我們使用Visual Studio Code的MySQL擴展插件進行驗證,正常情況如下所示:

這裡我們主要簡單的介紹以下MySQL命令行工具和Visual Studio Code的MySQL擴展插件。


進入方式在前面的章節我們已經多次講述了,這裡就不贅述了。使用MySQL命令行工具,我們可以非常方便的進行管理資料庫。比如:


2. Visual Studio Code的MySQL插件

由於大部分MySQL UI管理工具都要錢,這裡就首要推薦使用萬能的Visual Studio Code的MySQL的插件來進行管理。

使用起來非常簡單:

支持多種資料庫(MySQL、MSSQL、PostgreSQL、Oracle、SQLite、SAP HANA),支持書籤、查詢語句智能提示和自動完成以及將數據導出CSV或JSON:


phpMyAdmin 是一個B/S架構的MySQL的資料庫管理工具,讓管理者可用Web接口管理MySQL資料庫。我們可以使用容器來運行phpmyadmin,官方鏡像地址:

https://hub.docker.com/r/phpmyadmin/phpmyadmin

執行命令如下:

docker run --name myadmin `--link mysql:db `-e MYSQL_ROOT_PASSWORD=123456 `-p 8080:80 `-d phpmyadmin/phpmyadmin

如上述命令所示,我們運行了一個phpmyadmin容器實例,其中MySQL的「root」帳戶密碼為「123456」。運行成功後,就可以訪問「http://localhost:8080/」以進入以下管理界面(登錄帳戶和密碼分別為「root」、「123456」):

相關焦點

  • docker容器操作命令:目錄掛載與安裝MySQL容器詳解
    share/nginx/html nginx查看IP和相關的安裝信息和目錄docker inspect [容器名|容器ID]> docker inspect tomcat> docker inspect nginx
  • Docker 系列教程:輕鬆在 Docker 容器中運行 MySQL 圖文指南
    事實上,MySQL 是與 Docker 容器一起使用的最流行的資料庫之一。要將 MySQL 創建為 Docker 容器,主機應安裝 Docker。如果你沒有安裝它,這裡有一個如何在 Ubuntu 上安裝 Docker 的分步指南。(見:https://www.linuxmi.com/ubuntu-docker-zhinan.html )1.
  • ​Docker容器化Jenkins+碼雲+Docker+華為鏡像容器實現CI/CD
    轉載Docker容器化Jenkins+碼雲+Docker+華為鏡像容器實現CI/CD本篇主要為個人在jenkins不知道是不是自己下的鏡像版本的問題,jenkins容器起起來以後沒有jdk運行環境。使用docker 掛載數據卷的方式蹭宿主機的jdk來用,見下面的一長串啟動命令配置。個人不是很熟悉 docker-compose,所以本篇基本都是docker 原生命令。
  • 一文精通雲服務安裝JDK11/Mysql/Nginx/Docker/Compose/Node/Git/Rocketmq容器編排
    software/jdk11 CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH 環境變量立刻生效 source /etc/profile查看安裝情況 java -version雲計算+容器化是當下的主流
  • docker|docker安裝mysql資料庫
    javaDEMO本網站記錄了最全的各種JavaDEMO ,保證下載,複製就是可用的,包括基礎的, 集合的, spring的, Mybatis的等等各種
  • 基於docker的mysql部署
    化,甚至一切皆可docker。資料庫mysql,相信對於研發人員來說都不陌生,特別是後臺應用,mysql更是基石,因此本文將為大家簡單介紹mysql的容器化安裝。   創建容器,啟動mysqldocker run
  • 如何在Mysql的Docker容器啟動時初始化資料庫
    2.原理當Mysql容器首次啟動時,會在 /docker-entrypoint-initdb.d目錄下掃描 .sh,.sql,.sql.gz類型的文件。如果這些類型的文件存在,將執行它們來初始化一個資料庫。這些文件會按照字母的順序執行。
  • 細述docker容器創建MariaDB鏡像
    196.6 MB創建交互型容器[root@test01 ~]# docker run -it --name="mysql_server" centos /bin/bash安裝mariadb服務[root@e8126d0481d2
  • Ubuntu16.04使用docker安裝MySQL(詳細)
    後來,師兄告訴我可以使用docker安裝mysq,方法l特別簡單。自己嘗試以後,成功了,非常感謝師兄~自己以前也聽說過docker,但是從未使用過,於是從頭開始通過Docker 教程|菜鳥教程學習了docker的一些基礎知識,並且很快就能上手使用docker安裝mysql了。自己在安裝的過中還是與教程有不同的地方,希望給大家做一個參考。
  • Docker for 開發:容器化你的應用
    不同於使用一個百科全書式的方法來使用Docker的所有功能和命令,我將介紹容器化開發人員的環境的主要的Docker功能。這篇文章是關於利用Docker的容器化能力的一系列文章中的第一篇,它很容易構建一個可以在任何時間共享和運行的應用程式開發環境。
  • PHP項目Docker化指南
    文章亮點將PHP應用及其依賴的服務容器化步驟如何將應用容器鏡像的構建自動化應用容器如何快速部署到測試環境和生產環境中快速上手PHP官方在 hub.docker.com 上維護了官方的PHP Docker鏡像,包含了從PHP 5.5到7.0的多種不同版本的鏡像。
  • Docker容器進階(中)
    ⼀般會做端⼝映射,這樣是為了讓外部 能夠訪問這些容器⾥的應⽤。本例使⽤-p把本地3307轉發到容器的3306,其他參數需要查看發 布容器的⻚⾯提示查看本地地址:[root@qfedu.com ~]#ip a ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc pfifo_fast state UP qlen 1000 link/
  • MySQL複製技術對比與容器化探究
    OpenShift提供的MySQL容器鏡像如果我們想要實現MySQL的容器化,怎麼做的?紅帽OpenShift提供MySQL的容器化鏡像,可以看到最新的是MySQL 8.0.以最簡單的方式運行MySQL容器鏡像使用紅帽提供的MySQL鏡像,最簡單的方法是直接運行(實驗的時候,我們使用基於rhel7的mysql8鏡像):podman run -d --name mysql_database -e MYSQL_USER=user
  • Docker系列教程:如何在 Docker 容器中運行 Nginx
    在本教程中,您將學習如何將 Nginx 作為 Docker 容器運行,並將其公開給您的本地網絡。
  • docker安裝mysql
    :5.7.30docker.io/library/mysql:5.7.30 docker images REPOSITORY TAG IMAGE ID CREATED SIZEfeisky/app mem-leak-fix 88b9a8aaeffa 11 months
  • Docker-compose 八步部署Django + Uwsgi + Nginx + MySQL + Redis升級篇
    Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發布到任何流行的 Linux機器上。volumes: - redis_vol:/data # 通過掛載給redis數據備份 - .
  • Docker 容器化部署運維 OpenStack 和 Ceph
    具體而言,Kolla 的最終目標是為 OpenStack 的每一個服務都創建一個對應的 Docker鏡像,通過 Docker 鏡像將升級的粒度減小到服務級別,從而在升級時對 OpenStack 的影響降到最小,並且一旦升級失敗,也很容易回滾。升級只需要三步:拉取新版本的容器鏡像,停止老版本的容器服務,啟動新版本的容器。
  • Docker MySQL 使用
    容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。不管是在Linux還是windows上面都可以使用docker,windows用戶可以下載 Docker Desktop[2],像軟體一樣開啟docker服務。
  • 【Docker系列】使用docker安裝mysql
    1.普通安裝1.下載鏡像,mysql 5.72.創建mysql容器,並後臺啟動
  • Docker安裝mysql,nginx