使用 docker-compose 運行 MySQL

来源:https://www.cnblogs.com/cloudfloating/archive/2019/09/18/11541020.html
-Advertisement-
Play Games

目錄結構 mysql 目錄下的 data 為數據目錄,mysql 的數據表、二進位日誌文件就在這裡。.env 文件包含了一些變數,這些變數可以在 docker compose.yml 文件中通過 ${variable_name} 來引用。 當然也可以把 mysql 的目錄放到其它地方,這裡圖個方便, ...


目錄結構

.
│  .env
│  docker-compose.yml
│
└─mysql
    ├─config
    │      my.cnf
    │
    └─data

mysql 目錄下的 data 為數據目錄,mysql 的數據表、二進位日誌文件就在這裡。.env 文件包含了一些變數,這些變數可以在 docker-compose.yml 文件中通過 ${variable_name} 來引用。

當然也可以把 mysql 的目錄放到其它地方,這裡圖個方便,直接放在 yml 文件同級目錄了。

.env 文件

MYSQL_ROOT_PASSWORD=root
MYSQL_ROOT_HOST=%

MYSQL_DIR=./mysql

MySQL 配置文件 my.cnf

[mysqld]
character-set-server=utf8mb4
default-time-zone='+8:00'
innodb_rollback_on_timeout='ON'
max_connections=500
innodb_lock_wait_timeout=500

如果使用預設配置,這個文件可以省略。

docker-compose.yml

version: '3'

services:

  mysql-db:
    container_name: mysql-docker        # 指定容器的名稱
    image: mysql:8.0                   # 指定鏡像和版本
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_ROOT_HOST: ${MYSQL_ROOT_HOST}
    volumes:
      - "${MYSQL_DIR}/data:/var/lib/mysql"           # 掛載數據目錄
      - "${MYSQL_DIR}/config:/etc/mysql/conf.d"      # 掛載配置文件目錄

Environment 變數

  • MYSQL_ROOT_PASSWORD :這個不用解釋,root 用戶的密碼。
  • MYSQL_USERMYSQL_PASSWORD :這兩個變數為可選,創建一個新用戶,這個用戶在 MYSQL_DATABASE 變數指定的資料庫上擁有超級用戶許可權。
  • MYSQL_DATABASE :指定一個資料庫,在容器啟動時創建。
  • MYSQL_ALLOW_EMPTY_PASSWORD :設置為 yes 允許 root 用戶的密碼為空。(不推薦)
  • MYSQL_RANDOM_ROOT_PASSWORD :設置為 yes 將在容器啟動時為 root 用戶生成一個隨機的密碼,密碼會顯示到標準輸出流(GENERATED ROOT PASSWORD:......)。
  • MYSQL_ONETIME_PASSWORD :字面意思就是一次性密碼,為 root 用戶設置,第一次登錄後必須修改密碼(僅支持 5.6 以上的版本)。

運行容器

在 docker-compose.yml 目錄下執行:

> docker-compose up

如果要在後臺運行,使用 docker-compose up -d

停止容器:

> docker-compose down

如果是前臺運行的,使用:Ctrl + C 停止。這兩種方式在停止後都會刪除容器,下次啟動必須使用 up 命令。

停止但不刪除容器:

> docker-compose stop

使用 stop 停止後,再次啟動使用 start 命令即可。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 系統:win10(其他版本系統不在本次內容) MYSQL下載地址:https://dev.mysql.com/downloads/mysql/ MySQL安裝主流分為兩種:msi,zip Zip:壓縮版,這需要配置init文件,然後通過win+R 進入cmd控制台進行操作(本次 以msi版本為主,後 ...
  • Redis事務控制 1、Redis事務控制的相關命令彙總 |命令名|作用| | | | |MULTI|表示開始收集命令,後面所有命令都不是馬上執行,而是加入到一個隊列中。| |EXEC|執行MULTI後面命令隊列中的所有命令。| |DISCARD|放棄執行隊列中的命令。| |WATCH|“觀察”、“ ...
  • Redis實例安裝 安裝說明:自動解壓縮安裝包,按照指定路徑編譯安裝,複製配置文件模板到Redis實例路的數據徑下,根據埠號修改配置文件模板 配置文件,當前shell腳本,安裝包 參數1:basedir,redis安裝包路徑 參數2:安裝實例路徑 參數3:安裝包名稱 參數4:安裝實例的埠號 #! ...
  • [root@localhost ~]# firewall-cmd --zone=public --add-port=1521/tcp --permanent success [root@localhost ~]# firewall-cmd --reload success ...
  • Spark 的 RDD 學習第二節,筆記相關: 1.如何向 Spark 傳遞函數 2.Spark 常用的一些轉化和行動操作 3.Spark 的持久化級別 ...
  • [toc] 發表日期:2019年9月18日 什麼是ElasticSearch ElasticSearch是一個集 數據存儲 、 數據搜索 和 數據分析 為一體的系統。它是分散式的,所以能利用分散式來提高其處理能力,具有高可用性和高伸縮性。如果你需要一個能夠提供高性能的搜索服務的系統,那麼它或許是一個 ...
  • 概敘 關係資料庫的基本特征是使用關係模型的組織數據,20世紀80年代以後,在商用DBMS中,關係模型逐步取代早期的網狀模型和層次模型。 關係數據模型 作為數據模型,關係模型包含三個組成要素:關係數據結構、關係操作集合和關係完整性約束。 關係數據結構 重點 結構只包含單一的數據結構(關係),現實世界的 ...
  • 【作者】 王棟:攜程技術保障中心資料庫專家,對資料庫疑難問題的排查和資料庫自動化智能化運維工具的開發有強烈的興趣。 【問題描述】 我們知道當mysqld進程使用到SWAP時,就會嚴重影響到MySQL的性能。SWAP的問題比較複雜,本文會從SWAP的原理開始,分享我們碰到的案例和分析思路。 【SWAP ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...