当前位置: 首页 > news >正文

初探 Mysql Docker

前言

我在專案開發階段常使用 MySQL Docker,主要是好處,快速啟動、零安裝成本、版本切換,不污染本機系統(不喜歡本機裝一堆有的沒的,特別是有的只會用那麼一次)。而且如果在需要,任何時間、任何機器,都能還原相同 DB 環境。

註: 在測試也非常好用:

1.Unit / Integration Test 啟動臨時 MySQL

2.測試結束,可以將容器刪除

3.不影響正式資料

必要:

安裝 Docker Desktop

參看: https://docs.docker.com/desktop/setup/install/windows-install/

專案結構

|- docker/

| |- mysql/

| |─ docker-compose.yml

| |- init/

| |- schema.sql

實作

新增docker-compose.ymlMySQL

services: mysql: image: mysql:8.4.7 container_name: dev-mysql restart: always ports: - "3306:3306" environment: # 建立 root 預設使用的密碼 MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: testdb # 建立新使用者並設定該使用者的密碼 MYSQL_USER: mysql MYSQL_PASSWORD: 123456 volumes: # 我本機上建立的資料目錄 - /Users/danny/mysql_data:/var/lib/mysql - ./init:/docker-entrypoint-initdb.d command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

新增schema.sql

DROP TABLE IF EXISTS users; CREATE TABLE users ( id bigint NOT NULL AUTO_INCREMENT, email varchar(255) NOT NULL, first_name varchar(255) NOT NULL, last_name varchar(255) DEFAULT NULL, password varchar(255) NOT NULL, username varchar(255) NOT NULL, PRIMARY KEY (id), CONSTRAINT username_unique UNIQUE (username), CONSTRAINT email_unique UNIQUE (email) );

說明:

初始化新實例:(選項)

當容器首次啟動時,如需要建立一個具有指定名稱的新資料庫,並進行初始化。它將執行位於指定目錄下、副檔名為 .sql 的檔案/docker-entrypoint-initdb.d。文件將按字母順序執行。

資料儲存:(選項)

在主機系統上建立資料目錄,並將其掛載到容器內部可存取的目錄。這樣,資料庫檔案就會位於主機系統上建立資料

啟動 / 停止

# 啟動,如果之前會 pull mysql image過,會需要pull image

docker compose up -d

# 查看狀態,已成功啟動。

docker compose ps

檢視相關狀態。

查看 Docker Desktop,可以看到 Containers 已有剛建立的 dev-mysql

使用mysql client 工具連線,可以看到剛初始建立的table users

文章到此結束。謝謝!

:-( 怎沒半個粉

http://www.cnnetsun.cn/news/114260.html

相关文章:

  • 33、Linux 内存管理全解析
  • 5.回溯算法
  • 嵌入式模组温控策略
  • 【昇腾CANN训练营·架构篇】打破内存墙:Ascend C 算子融合(Operator Fusion)的极致心法
  • 【昇腾CANN训练营·算法篇】寻找消失的除法器:Newton Iteration 与高精度数学计算的艺术
  • 19、Linux 帧缓冲接口设计与图形库应用
  • 人才发展ℓℓ 人才盘点怎么做?这篇完全应用手册给出答案
  • 真相来了|字节跳动的人才真相:真正拉开差距的,是“人才密度”(附人才密度清单)
  • 力扣(LeetCode) 66: 加一 - 解法思路
  • HC32L130精准延时实现指南
  • 收藏必看!大学生网络安全学习5大方向,校招不踩坑,小白也能逆袭!
  • 收藏!从“黑客梦“到网络安全专家:过来人告诉你自学路线图
  • Bagisto 产品更新后,前台默认语言的内容不更信,其他语言正常。
  • 【收藏】运维转网安的黄金路径:4个高适配岗位+3步落地指南,薪资提升50%
  • 大语言模型全解析:一篇文章带你深入理解AI的强大能力!
  • 【网络】网络通信模型
  • Slimjet浏览器:基于Chromium的高效网页浏览解决方案,内置广告拦截与多功能工具
  • AMP页面还要做吗?2025替代方案及优化指南
  • 为什么你的RAG总是“一本正经地胡说八道”?EAG-RAG揭示真相,准确率暴涨300%的秘密!
  • iOS 项目中证书管理常见的协作问题
  • 理解线程不安全:从观察到原因分析
  • 《Java Web开发入门很简单》——学习笔记,新手入门,收藏这篇就够了
  • 2025年,国内外最火的10款降AI率工具亲测!(持续更新)
  • 基于大数据的餐饮食材管理系统的设计与实现开题报告
  • 基于大数据的交通信号智能控制系统的设计与实现开题报告
  • 基于大数据的交通信号智能控制系统的设计与实现任务书
  • 蜘蛛池站点优化思路分享
  • 2025 OA 选型关键看这 4 点:集成、灵活、安全、易用,附高性价比系统清单
  • 图神经网络与pytorch
  • Xiaomi 商城页面布局(部分)