利用Docker-Compose部署MySQL服务器

文章目录

  • 1. 实战概述
  • 2. 实战步骤
    • 2.1 创建配置文件目录
    • 2.2 创建Docker编排配置文件
    • 2.3 利用docker-compose部署MySQL服务器
    • 2.4 在Navicat里连接MySQL服务器
    • 2.5 查看MySQL版本
    • 2.6 创建数据库用于测试
    • 2.7 进入MySQL容器查看数据库
    • 2.8 停止并移除MySQL容器但保留命名卷
    • 2.9 再次利用docker-compose启动MySQL容器
    • 2.10 在Navicat里查看数据库是否还存在
    • 2.11 停止并移除MySQL容器不保留命名卷
    • 2.12 再次利用docker-compose启动MySQL容器
    • 2.13 在Navicat里查看数据库是否还存在
  • 3. 实战总结

1. 实战概述

  • 本实战通过 Docker Compose 部署 MySQL 8.0 容器,配置端口映射、字符集、大小写不敏感及数据持久化,利用 Navicat 连接并验证数据库操作;通过 docker-compose down--volumes 参数对比演示了数据卷的保留与清除机制,完整展示了容器化数据库的部署、管理与数据持久化特性。

2. 实战步骤

2.1 创建配置文件目录

  • 执行命令:mkdir mysql_config
    在这里插入图片描述

2.2 创建Docker编排配置文件

  • 执行命令:cd mysql-config
    在这里插入图片描述

  • 执行命令:notepad docker-compose.yml,在记事本窗口里编写配置文件
    在这里插入图片描述

    services:
      mysql:
        image: mysql:8.0
        container_name: mysql8.0
        ports:
          - "3307:3306"
        command:
          - --default-authentication-plugin=mysql_native_password
          - --character-set-server=utf8mb4
          - --collation-server=utf8mb4_general_ci
          - --explicit_defaults_for_timestamp=true
          - --lower_case_table_names=1
        environment:
          - MYSQL_ROOT_PASSWORD=903213
          - TZ=Asia/Shanghai
        volumes:
          - mysql8_0_data:/var/lib/mysql
    
    volumes:
      mysql8_0_data: {}
    
  • 配置说明:该配置使用 Docker Compose 启动 MySQL 8.0 容器,映射宿主机 3307 端口,设置 root 密码为 903213,启用兼容性认证插件、UTF8MB4 字符集及大小写不敏感表名,通过命名卷 mysql8_0_data 持久化数据,并指定时区为 Asia/Shanghai,适用于 Windows/Linux 环境。

2.3 利用docker-compose部署MySQL服务器

  • 执行命令:docker-compose up -d
    在这里插入图片描述
  • 结果说明:执行 docker-compose up -d 后,Docker 成功创建网络、命名卷和容器,MySQL 8.0 容器已启动并运行在后台。网络 mysql_config_default 和卷 mysql8_0_data 均已创建,容器通过端口 3307 映射对外提供服务,数据持久化配置生效,系统可正常访问数据库。

2.4 在Navicat里连接MySQL服务器

  • 启动Navicate
    在这里插入图片描述
  • 新建MySQL数据库连接,输入相关信息
    在这里插入图片描述
  • 单击【测试连接】按钮
    在这里插入图片描述
  • 单击【确定】按钮(说明:localhost可以改成宿主机的IP地址)
    在这里插入图片描述
  • 单击【确定】按钮
    在这里插入图片描述
  • 打开MySQL8.0数据库连接
    在这里插入图片描述

2.5 查看MySQL版本

  • 在查询窗口里执行语句:select version();
    在这里插入图片描述

2.6 创建数据库用于测试

  • 执行语句:create database test character set utf8mb4;
    在这里插入图片描述

2.7 进入MySQL容器查看数据库

  • 执行命令:docker exec -it mysql8.0 /bin/bash,进入容器
    在这里插入图片描述
  • 执行命令:mysql -uroot -p903213,进入MySQL客户端
    在这里插入图片描述
  • 执行语句:show databases;,可以看到刚才在Navicat里创建的test数据库
    在这里插入图片描述
  • 执行命令:exit,退出MySQL客户端
    在这里插入图片描述
  • 执行命令:exit,退出容器
    在这里插入图片描述

2.8 停止并移除MySQL容器但保留命名卷

  • 执行命令:docker-compose down
    在这里插入图片描述
  • 结果说明:执行 docker-compose down 命令后,Docker 成功停止并移除了 MySQL 容器和相关网络。容器 mysql8.0 已被终止并从运行时环境中删除,网络 mysql_config_default 也被清理。命名卷 mysql8_0_data 默认保留,数据未被清除,确保下次启动时仍可恢复数据库内容。该操作实现了服务的优雅关闭与资源释放,符合容器化管理的最佳实践。
  • 此时,Navicat创建的数据库连接MySQL8.0无法使用了~
    在这里插入图片描述

2.9 再次利用docker-compose启动MySQL容器

  • 执行命令:docker-compose up -d
    在这里插入图片描述

2.10 在Navicat里查看数据库是否还存在

  • 你会发现test数据库依然存在,因为移除容器时没有删除命名卷,所以数据依然保留
    在这里插入图片描述

2.11 停止并移除MySQL容器不保留命名卷

  • 执行命令:docker-compose down --volumes
    在这里插入图片描述
  • 结果说明:执行 docker-compose down --volumes 后,Docker 成功停止并删除了容器 mysql8.0、网络 mysql_config_default 以及命名卷 mysql8_0_data。该操作彻底清理了所有相关资源,包括持久化数据,适用于环境重置或完全卸载场景,确保无残留数据。

2.12 再次利用docker-compose启动MySQL容器

  • 执行命令:docker-compose up -d
    在这里插入图片描述
  • 结果说明:执行 docker-compose up -d 后,Docker 成功创建网络、命名卷和容器,MySQL 8.0 容器已启动并运行在后台。网络 mysql_config_default 和卷 mysql8_0_data 均已创建,容器通过端口 3307 映射对外提供服务,数据持久化配置生效,系统可正常访问数据库。

2.13 在Navicat里查看数据库是否还存在

  • 你会发现test数据库不存在,因为移除容器时删除了命名卷,所以数据没有保留
    在这里插入图片描述

3. 实战总结

  • 本次实战详细演示了使用 Docker Compose 部署 MySQL 8.0 容器的全过程,包括创建配置文件目录、编写 docker-compose.yml 文件以配置服务端口映射、字符集、大小写不敏感设置及数据持久化。通过执行 docker-compose up -d 命令成功启动容器,并利用 Navicat 进行数据库连接测试和基本操作验证,如查看 MySQL 版本、创建数据库等。此外,还探讨了如何通过 docker-compose downdocker-compose down --volumes 命令分别实现停止并移除容器时保留或删除数据卷的效果,展示了 Docker 数据管理的最佳实践。整个过程不仅帮助理解了 Docker Compose 的便捷性与灵活性,同时也强调了在容器环境中进行数据持久化的重要性,为后续开发工作提供了可靠的数据服务支持。通过这次实战,参与者能够掌握从部署到管理的全流程技能,提升了对容器化应用的理解与实际操作能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒城译痴无心剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值