news 2026/5/16 0:28:45

初探 Mysql Docker

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初探 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

文章到此結束。謝謝!

:-( 怎沒半個粉

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 22:52:29

大数据传输时代:如何选择高效可靠的数据传输工具?

在数据驱动决策的今天,大数据已成为企业核心资产。然而,随着数据量呈几何级数增长,海量数据的快速、安全、稳定迁移与同步,正成为众多企业数字化转型道路上的严峻挑战。传统的传输方式在TB甚至PB级的数据洪流面前,如同…

作者头像 李华
网站建设 2026/5/13 22:51:44

企业网盘私有化部署,构建安全高效的数据资产管理基石

在数字化转型浪潮中,企业数据资产的价值与日俱增,如何安全、高效地存储、管理与协作这些核心资产,成为每个组织必须面对的关键议题。近年来,越来越多的企业将目光投向网盘系统的私有化部署,这一模式正逐渐成为保障数据…

作者头像 李华
网站建设 2026/5/13 22:51:08

39、深入探究 Linux 中的睡眠与计时机制

深入探究 Linux 中的睡眠与计时机制 在 Linux 系统编程中,睡眠和计时是常见的操作,它们在很多场景下都发挥着重要作用。本文将详细介绍 Linux 中不同的睡眠和计时接口,包括它们的特点、使用方法以及适用场景。 1. 纳秒级睡眠:nanosleep() Linux 中, usleep() 函数已被…

作者头像 李华
网站建设 2026/5/13 23:54:48

31、Linux 动态内存管理全解析

Linux 动态内存管理全解析 1. 映射文件与内存管理接口概述 大多数地址空间包含少量映射文件,如程序可执行文件本身、C 语言及其他共享库和数据文件。可以查看 /proc/self/maps 或 pmap 程序的输出,了解进程中的映射文件示例。Linux 提供了一系列接口用于获取和释放内存…

作者头像 李华
网站建设 2026/5/15 7:00:30

SpringBoot 快速上手:从入门到实战,5 分钟搭建 Web 应用

在 Java 开发领域,Spring 框架曾因强大的功能和灵活的扩展性成为主流,但繁琐的 XML 配置、复杂的依赖管理也让开发者颇感头疼。而 SpringBoot 的出现,以 “约定优于配置” 为核心思想,通过自动配置、起步依赖等特性,极…

作者头像 李华
网站建设 2026/5/14 2:26:30

48、网络故障排查工具与方法全解析

网络故障排查工具与方法全解析 在网络运维和故障排查过程中,拥有合适的工具和掌握有效的方法至关重要。本文将详细介绍一系列网络诊断和修复的工具及使用方法,帮助你更好地应对网络问题。 构建网络诊断和修复笔记本 拥有一台用于网络诊断和修复的笔记本是非常实用的。不需…

作者头像 李华