最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用?docker?搭建一個?mysql?服務

 更新時間:2022年09月26日 11:07:45   作者:二牛QAQ  
這篇文章主要介紹了如何使用?docker?搭建一個mysql服務,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

前言

在日常開發(fā)中,數據庫 mysql 是必不可少的,但是由于其繁瑣的配置,安裝 mysql 時總是不太順利,還可能會踩坑。所以本文的目的,可以讓你快速搭建一個 mysql 服務。

下面跟著以下教程,可以讓你快速、流暢的安裝 mysql 數據庫,流程可分成 4 步。

1. 編寫 docker-compose.yml 文件

創(chuàng)建 docker-compose.yml 文件,文件內容如下:

version: '3.1'

services:
    mysql:
        image: mysql:8
        restart: always
        # https://stackoverflow.com/a/49021165/7756877,使用默認的授權插件,
        # mysql 8 默認使用 caching_sha2_password 作為授權插件,并非 mysql_native_password,
        # 然而 mysql 驅動還不支持 caching_sha2_password,為了往后兼容所以要加這一行。
        command: --default-authentication-plugin=mysql_native_password
        ports:
            - "7306:3306"
        volumes:
            - "./table.sql:/docker-entrypoint-initdb.d/01-init-table.sql"
        environment:
            MYSQL_ROOT_PASSWORD: mysql # root 用戶的密碼
            MYSQL_DATABASE: lingmo   # 默認創(chuàng)建 lingmo 數據庫
            MYSQL_USER: kele         # 新建一個用戶
            MYSQL_PASSWORD: baishi2020 # 新建用戶的密碼

Compose 是用于定義和運行多容器 Docker 應用程序的工具。通過 Compose,您可以使用 YML 文件來配置應用程序需要的所有服務。然后,使用一個命令,就可以從 YML 文件配置中創(chuàng)建并啟動所有服務。

docker-compose 的 services 屬性中定義的一個 mysql

  • image 表明鏡像版本是 mysql:8
  • command 通過參數 --default-authentication-plugin 定義了一個默認插件 mysql_native_password, 原因是: mysql 8 默認使用 caching_sha2_password 作為授權插件,并非 mysql_native_password,然而 mysql 驅動還不支持 caching_sha2_password,為了往后兼容所以要加這一行。
  • port 表明使用本地的 7306 端口映射容器中 mysql 的 3306 端口。
  • volumes 表明將 ./table.sql 文件掛載到容器的 docker-entrypoint-initdb.d/01-init-table.sql 文件中,而存在容器中 docker-entrypoint-initdb.d/ 目錄中的文件,在 mysql 第一次啟動時會執(zhí)行,之后重啟容器不會重復執(zhí)行。
  • environment
    • MYSQL_ROOT_PASSWORD: 創(chuàng)建 mysql 服務時會新建一個 root 用戶,這個屬性定義的是 root 用戶密碼。
    • MYSQL_DATABASE: 默認創(chuàng)建一個 lingmo 的數據庫。
    • MYSQL_USER: 再次創(chuàng)建一個用戶,用戶名是 kele。
    • MYSQL_PASSWORD: 表明 kele 用戶的密碼,這里是 baishi2020

2. 定義測試數據

新建測試數據表 table.sql ,目的是在 mysql 啟動時初始化數據。

DROP TABLE IF EXISTS `students`;
CREATE TABLE `students` (
    `student_id` varchar(255) NOT NULL,
    `student_name` varchar(255),
    `sex` tinyint(1) DEFAULT NULL,
    PRIMARY KEY (`student_id`)
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4;

INSERT INTO `students`(`student_id`, `student_name`, `sex`) VALUES(1, 'jake', 0), (2, 'jenery', 1);

以上表示新建一張 students 表,然后插入兩條數據。

3. 定義啟動文件

新建啟動文件 set-env.sh, 通過 docker-compose 啟動 mysql 容器服務;然后通過 souce set-env.sh 把 mysql-local-dev 設置到環(huán)境變量中去。

#!/bin/bash

MYSQL_LOCAL_ENV_DIR="$( cd "$(dirname "$0")"; pwd -P )"

function mysql-local-dev() {
    case $1 in
        "up")
            docker-compose -p lingmo -f "$MYSQL_LOCAL_ENV_DIR"/docker-compose.yml up -d
            ;;
        "down")
            docker-compose -p lingmo -f "$MYSQL_LOCAL_ENV_DIR"/docker-compose.yml down
            ;;
        *)
            echo 'mysql-local-dev [up | down]'
    esac
}

啟動 mysql 的三個文件已定義完成,目錄結構為以下:

?  local-mysql git:(main) ? tree . 
.
├── docker-compose.yml
├── set-env.sh
└── table.sql

0 directories, 3 files

最后,我們測試下是否可啟動 mysql。

4. 啟停 mysql

  • 啟動 mysql
mysql-local-dev up

說明 mysql 啟動成功。

 通過相應的賬號、密碼登錄 mysql 即可。

  • 停止 mysql
mysql-local-dev down 

到此這篇關于如何使用 docker 搭建一個 mysql 服務的文章就介紹到這了,更多相關 docker 搭建mysql 服務內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Docker安裝Flink教程

    Docker安裝Flink教程

    文章描述了如何在Docker中安裝Flink的詳細步驟,包括拉取鏡像、創(chuàng)建文件夾、編輯yml文件、執(zhí)行命令、檢查Docker-compose版本、賦予操作權限以及通過Web端訪問Flink
    2024-11-11
  • 使用Docker部署前后端分離項目的完整步驟

    使用Docker部署前后端分離項目的完整步驟

    剛剛接觸基礎的運維工作,采用的是docker部署的方式,下面這篇文章主要給大家介紹了關于使用Docker部署前后端分離項目的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • Docker Compose 網絡設置詳解

    Docker Compose 網絡設置詳解

    這篇文章主要介紹了Docker Compose 網絡設置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • docker部署安裝jenkins的實現步驟

    docker部署安裝jenkins的實現步驟

    本文主要介紹了docker部署安裝jenkins的實現步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Navicat 連接服務器端中的docker數據庫的方法

    Navicat 連接服務器端中的docker數據庫的方法

    這篇文章主要介紹了Navicat 連接服務器端中的docker數據庫,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 基于Docker、Nginx和Jenkins實現前端自動化部署

    基于Docker、Nginx和Jenkins實現前端自動化部署

    本文主要介紹了搭建Docker+Nginx+Jenkins環(huán)境,用于實現前端自動化部署的流程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Docker load之后鏡像名字為none問題解決方法

    Docker load之后鏡像名字為none問題解決方法

    這篇文章主要介紹了Docker load之后鏡像名字為none問題解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Windows/Mac系統Docker方式安裝Mysql(包含utf8)

    Windows/Mac系統Docker方式安裝Mysql(包含utf8)

    本文主要介紹了Windows/Mac系統Docker方式安裝Mysql(包含utf8),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 樹莓派3B+安裝64位ubuntu系統和docker工具的操作步驟詳解

    樹莓派3B+安裝64位ubuntu系統和docker工具的操作步驟詳解

    這篇文章主要介紹了樹莓派3B+安裝64位ubuntu系統和docker工具,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 使用docker制作分布式lnmp 鏡像

    使用docker制作分布式lnmp 鏡像

    最近在學習docker相關知識,順便把docker制作分布式lnmp 鏡像的過程分享給大家,包括Nginx配置文件和PHP文件的修改代碼也一并給出,感興趣的朋友跟隨小編一起看看吧
    2021-06-06

最新評論

芜湖县| 荣昌县| 江源县| 洛扎县| 余姚市| 许昌县| 赫章县| 鲜城| 汤原县| 涿州市| 襄垣县| 金寨县| 平顶山市| 施秉县| 慈利县| 宕昌县| 榆社县| 巍山| 连山| 锦屏县| 开封市| 福清市| 峨山| 广灵县| 太仓市| 阳原县| 宜良县| 安顺市| 岑溪市| 依安县| 灵台县| 上饶县| 屏东市| 宁陵县| 油尖旺区| 民勤县| 湘潭市| 巴马| 涡阳县| 洛川县| 白山市|