使用 Docker-compose 部署 MySQL

使用 Docker Compose 部署 MySQL

本文將詳細指導如何使用 docker-compose 部署 MySQL,包括基本配置、啟動步驟、數據持久化以及一些高級選項。通過容器化部署 MySQL,你可以快速搭建一個隔離的數據庫環境,適用于開發、測試或小型生產場景。


關鍵要點

  • 使用 docker-compose 部署 MySQL 需要創建一個 docker-compose.yml 文件,設置 MySQL 鏡像、端口映射、環境變量和數據持久化。
  • 需要安裝 Docker Engine、Docker Compose 和 MySQL 客戶端。
  • 數據通過命名卷持久化,方便管理和備份。
  • 令人驚訝的是,你可以自動創建數據庫和用戶,只需在文件中添加額外的環境變量。

準備工作

在開始之前,請確保已安裝以下工具:

  • Docker Engine:容器運行環境,可從 官方文檔 獲取。
  • Docker Compose:管理多容器應用的工具,可從 官方文檔 獲取。
  • MySQL 客戶端:用于連接和操作數據庫,可參考 安裝指南。

這些工具是部署的基礎,確保你的環境已準備就緒。


創建和啟動 MySQL

1. 創建 docker-compose.yml 文件

創建一個名為 docker-compose.yml 的文件,內容如下:

version: '3.9'
services:mysql:image: mysql:8.0restart: alwaysports:- "3306:3306"environment:MYSQL_ROOT_PASSWORD: MYPASSWORDvolumes:- mysql_data:/var/lib/mysql
volumes:mysql_data: 

說明:

version: '3.9':指定 Docker Compose 文件格式版本。
image: mysql:8.0:使用 MySQL 8.0 官方鏡像。
restart: always:容器在失敗時自動重啟。
ports: "3306:3306":將主機端口 3306 映射到容器內的 3306 端口。
environment:設置 MySQL 根密碼(將 MYPASSWORD 替換為你的實際密碼)。
volumes:使用命名卷 mysql_data 掛載到 /var/lib/mysql,實現數據持久化。

2.可選:自動創建數據庫和用戶

如果需要自動創建數據庫和用戶,可以在 environment 中添加以下內容:

environment:- MYSQL_ROOT_PASSWORD=MYPASSWORD- MYSQL_DATABASE=mydb- MYSQL_USER=myuser- MYSQL_PASSWORD=myuserpassword

說明:

MYSQL_DATABASE:創建名為 mydb 的數據庫。
MYSQL_USER:創建用戶 myuser。
MYSQL_PASSWORD:設置用戶密碼為 myuserpassword。
將上述值替換為你的實際需求,這一功能非常適合快速初始化。

3.啟動服務

在 docker-compose.yml 文件所在目錄,打開終端并運行:

docker compose up -d

-d 參數表示在后臺運行,容器啟動后不會阻塞終端。
首次運行可能需要下載 MySQL 鏡像,請耐心等待。

4. 驗證和連接

檢查容器狀態:

docker compose ps

輸出應顯示 mysql 服務狀態為 Up,表示運行正常。

連接 MySQL,使用 MySQL 客戶端:

mysql -h localhost -u root -p

輸入之前設置的密碼(如 MYPASSWORD),成功連接后即可看到 MySQL 提示符。

5. 停止和清理

使用完成后,運行以下命令停止并移除容器:

docker compose down

這會停止并刪除容器、網絡和卷,但數據仍保存在 mysql_data 卷中,除非手動清理。

注意事項

數據持久化mysql_data 卷確保數據在容器刪除后仍可訪問,建議定期備份。
安全性:暴露 3306 端口可能存在風險,生產環境建議使用防火墻或 Docker 網絡隔離。
調試
查看日志:

docker logs mysql

進入容器

docker exec -it mysql bash

結論

通過 docker-compose 部署 MySQL 是一種高效、靈活的方式,適合快速搭建開發或測試環境。本文提供了從基礎配置到高級選項的完整指南,包括數據持久化、自動初始化和故障排查方法。你可以根據實際需求調整配置,例如更改端口、密碼或添加初始化腳本。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70600.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70600.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70600.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTML 中的 Canvas 樣式設置全解

在 HTML5 中&#xff0c;<canvas> 元素提供了一個強大的繪圖接口&#xff0c;允許開發者通過 JavaScript 實現各種圖形和動畫效果。為了充分利用 <canvas> 的功能&#xff0c;理解其樣式設置是至關重要的。本文將詳細介紹如何在 HTML 中設置 <canvas> 的各種…

【論文解析】Fast prediction mode selection and CU partition for HEVC intra coding

級別:IET Image Processing(2020)CCF CSCI 4區時間:2020年機構:蘇州大學下載地址:Fast prediction mode selection and CU partition for HEVC intra coding摘要 HEVC確實是一個很大的進步,編碼效率翻倍,但計算復雜度也增加了不少。為了解決這個問題,提出了兩種算法:…

大數據組件(四)快速入門實時數據湖存儲系統Apache Paimon(2)

Paimon的下載及安裝&#xff0c;并且了解了主鍵表的引擎以及changelog-producer的含義參考&#xff1a; 大數據組件(四)快速入門實時數據湖存儲系統Apache Paimon(1) 利用Paimon表做lookup join&#xff0c;集成mysql cdc等參考&#xff1a; 大數據組件(四)快速入門實時數據…

智慧校園系統在學生學習與生活中的應用

隨著科技的快速發展&#xff0c;智慧校園系統逐漸成為現代教育不可或缺的一部分。它整合了先進的信息技術、物聯網技術以及人工智能等&#xff0c;旨在構建一個全面、智能、個性化的學習與生活環境。對于學生而言&#xff0c;這一系統不僅能夠極大地提高學習效率&#xff0c;還…

基于Flask的京東商品信息可視化分析系統的設計與實現

【Flask】基于Flask的京東商品信息可視化分析系統的設計與實現&#xff08;完整系統源碼開發筆記詳細部署教程&#xff09;? 目錄 一、項目簡介二、項目界面展示三、項目視頻展示 一、項目簡介 系統能夠靈活地執行SQL查詢&#xff0c;提取出用于分析的關鍵數據指標。為了將這…

Electron通過ffi-napi調用dll導出接口

electron使用ffi-napi環境搭建 附打包好的ffi-napi可以直接放到項目目錄下使用&#xff0c;避免以后麻煩 一、安裝node.js Node.js官網&#xff1a;https://nodejs.org/zh-cn/download&#xff0c;選擇LTS長期穩定版本即可 需要注意Node.js 區分32和64位&#xff0c;32位版…

25工程管理研究生復試面試問題匯總 工程管理專業知識問題很全! 工程管理復試全流程攻略 工程管理考研復試真題匯總

工程管理復試面試心里沒底&#xff1f;別慌&#xff01;學姐手把手教你怎么應對復試&#xff01; 很多同學面對復試總擔心踩坑&#xff0c;其實只要避開雷區掌握核心技巧&#xff0c;逆襲上岸完全有可能&#xff01;這份保姆級指南幫你快速鎖定重點&#xff0c;時間緊迫優先背…

深藍學院自主泊車第3次作業-IPM

目錄 1 題目介紹2 求解 1 題目介紹 已知魚眼相機的參數&#xff0c; image_width&#xff0c;表示圖像的寬度image_height&#xff0c;表示圖像的高度 ξ \xi ξ&#xff0c;表示魚眼相機參數 k 1 k_1 k1?、 k 2 k_2 k2?&#xff0c;表示徑向相機參數 p 1 p_1 p1?、 p 2 p…

核貨寶助力連鎖門店訂貨數字化轉型升級

在競爭激烈的連鎖零售行業&#xff0c;傳統訂貨模式弊端日益凸顯&#xff0c;嚴重制約著企業的發展。核貨寶訂貨系統以其卓越的數字化解決方案&#xff0c;為連鎖門店訂貨帶來了全方位的變革&#xff0c;助力企業實現數字化轉型升級&#xff0c;在市場中搶占先機。 一、增強總部…

2.最多提取子串數目(100分)-附帶Java逐行解析

題目 給定 [a-z]&#xff0c;26個英文字母小寫字符串組成的字符串 A 和 B&#xff0c;其中 A 可能存在重復字母&#xff0c;B 不會存在重復字母&#xff0c;現從字符串 A 中按規則挑選一些字母&#xff0c;可以組成字符串B。 挑選規則如下&#xff1a; 同一個位置的字母只能挑…

AutoGen 技術博客系列 八:深入剖析 Swarm—— 智能體協作的新范式

本系列博文在掘金同步發布, 更多優質文章&#xff0c;請關注本人掘金賬號&#xff1a; 人肉推土機的掘金賬號 AutoGen系列一&#xff1a;基礎介紹與入門教程 AutoGen系列二&#xff1a;深入自定義智能體 AutoGen系列三&#xff1a;內置智能體的應用與實戰 AutoGen系列四&am…

力扣每日一題【算法學習day.132】

前言 ###我做這類文章一個重要的目的還是記錄自己的學習過程&#xff0c;我的解析也不會做的非常詳細&#xff0c;只會提供思路和一些關鍵點&#xff0c;力扣上的大佬們的題解質量是非常非常高滴&#xff01;&#xff01;&#xff01; 習題 1.統計相似字符串對的數目 題目鏈…

C語言.h頭文件的寫法

頭文件的內容 #ifndef __SEQUENCE_LIST_H // 定義以防止遞歸包含 #define __SEQUENCE_LIST_H // (1)、其它頭文件 #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <stdbool.h> // (2)、宏定義(函數、變量、常量) // (3)、…

Spring AI + Ollama 實現調用DeepSeek-R1模型API

一、前言 隨著人工智能技術的飛速發展&#xff0c;大語言模型&#xff08;LLM&#xff09;在各個領域的應用越來越廣泛。DeepSeek 作為一款備受矚目的國產大語言模型&#xff0c;憑借其強大的自然語言處理能力和豐富的知識儲備&#xff0c;迅速成為業界關注的焦點。無論是文本生…

自學Java-AI結合GUI開發一個石頭迷陣的游戲

自學Java-AI結合GUI開發一個石頭迷陣的游戲 準備環節1、創建石頭迷陣的界面2、打亂順序3、控制上下左右移動4、判斷是否通關5、統計移動步驟&#xff0c;重啟游戲6、拓展問題 準備環節 技術&#xff1a; 1、GUI界面編程 2、二維數組 3、程序流程控制 4、面向對象編程 ? \bulle…

C語言的內存分配:malloc和free

使用庫函數分配和管理內存。在運行時&#xff0c;分配更多的內存給程序使用&#xff0c;主要工具是malloc函數&#xff0c;這個函數接受一個參數&#xff1a;所需要要的內存字節數。malloc函數會找到合適的空閑內存塊&#xff0c;這樣的內存是匿名的&#xff0c;即malloc分配了…

本地安裝 Grafana Loki

本地安裝 Grafana Loki 一、 安裝 Loki1. 下載 Loki2. 創建 Loki 配置文件3. 創建 Loki 服務 二、安裝 Promtail1. 下載 Promtail2. 創建 Promtail 配置文件3. 創建 Promtail 服務 三、 安裝 Grafana四、啟動所有服務五、添加loki 數據源1. 添加儀表板2. 日志查詢面板 json 參考…

趣味數學300題1981版-十五個正方形

分析&#xff1a;移動兩根變成11個正方形很簡單&#xff1a; 移動4根變成15個正方形&#xff0c;分析&#xff1a; 一個田字格包含5個正方形&#xff0c;若要15個正方形需要3個田字格&#xff0c;如果3個田字格完全不重合&#xff0c;需要6*318根火柴。如果合并正方形的邊&…

IDEA——Mac版快捷鍵

目錄 按鍵含義常用組合代碼生成快捷鍵&#xff1a;代碼追蹤快捷鍵&#xff1a;高效編輯快捷鍵&#xff1a;代碼重構快捷鍵&#xff1a;工具類快捷鍵&#xff1a;常規文件操作快捷鍵&#xff1a; 按鍵含義 ? command Command鍵&#xff08;?&#xff09;相當于Windows中的Con…

基于Spring Boot的興順物流管理系統設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…