Lottery 抽奖系统部署实录:Docker 安装 MySQL 与抽奖库表初始化指南
文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载本篇是《Lottery 分布式抽奖系统》第 5 部分「系统运维」第 04 节的实战指南核心目标是在云服务器上以 Docker 方式部署 MySQL并使用本地数据库工具完成抽奖系统库表的创建与建表语句导入。读完本篇你将掌握 MySQL 镜像的检索与拉取、容器启动与端口映射、本地客户端连接验证以及 lottery 数据库与 activity 等核心表的初始化方法为后续 xxl-job、canal 等组件的部署打好存储基础。一、本节运维目标在正式开展分布式系统运维时环境搭建是有明确先后依赖的Docker → Redis → Kafka → MySQL → xxl-job → Nacos → Elasticsearch/Kibana → canal。其中 MySQL 是整个抽奖系统的核心存储xxl-job 管理后台、canal 数据同步都依赖它因此本节需要完成拉取 MySQL 镜像并部署到 Docker 容器使用本地数据库连接工具连接云服务器上的 MySQL创建抽奖系统所需的lottery数据库并导入建表语句DDL。项目要求的运行环境为 MySQL 5.7可根据需要升级配置技术栈还包括 JDK 1.8、Maven 3.6.3、SpringBoot、MyBatis、Dubbo、MQ、Redis、分库分表、Otter 等详见 Lottery 抽奖系统介绍。二、查看可用的 MySQL 版本部署前先确认要拉取的镜像版本。两种方式任选其一方式一访问 Docker Hub 官方镜像仓库在浏览器中打开 MySQL 官方镜像的 Tags 页面可以按版本号、更新时间、是否官方认证等维度筛选镜像方式二使用docker search命令如果已在云服务器上安装 Docker参见 第01节在云服务器部署 Docker可以直接在终端执行docker search mysql命令会返回镜像名称、官方认证OFFICIAL、星级STARS、自动构建AUTOMATED等信息可以帮助你快速判断镜像的权威性与热度注意项目约定运行环境为 MySQL 5.7可升级配置若需要精确版本可直接使用带 tag 的镜像名如mysql:5.7不指定 tag 时默认拉取latest。三、拉取 MySQL 镜像确认版本后在云服务器上执行镜像拉取命令docker pull mysql:latest镜像层下载完成后终端会依次输出各层的 Pull 进度并最终提示下载完成与镜像摘要信息拉取完成后可通过docker images确认镜像是否存在。如果遇到error response from daemon: Get https://registry-1.docker.io/v2/之类的网络报错说明默认源拉取失败可以参照 第01节在云服务器部署 Docker 中给出的方案在/etc/docker/daemon.json中配置阿里云、中科大等registry-mirrors加速源后重启 Docker 再拉取。四、启动 MySQL 容器镜像就绪后使用docker run启动容器。结合本系列其他章节Kafka、xxl-job 等均通过docker run -d --name ... -p ...方式部署的惯例MySQL 的启动命令可组织为docker run -d \ --name mysql \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD123456 \ -e MYSQL_DATABASElottery \ -v /data/mysql/conf:/etc/mysql/conf.d \ -v /data/mysql/data:/var/lib/mysql \ --restartalways \ mysql:5.7参数说明参数说明-d后台运行容器--name mysql指定容器名便于后续docker exec进入容器操作-p 3306:3306将宿主机 3306 端口映射到容器 3306供本地工具远程连接-e MYSQL_ROOT_PASSWORD123456设置 root 用户密码。密码可按需修改但需与后续应用配置保持一致-e MYSQL_DATABASElottery容器首次启动时自动创建 lottery 数据库-v /data/mysql/data:/var/lib/mysql数据卷挂载将数据库文件持久化到宿主机避免容器删除后数据丢失--restartalways容器异常退出或宿主机重启时自动拉起保证服务可用性说明项目文档中应用的 JDBC 连接示例见 第05节部署环境 xxl-job使用root/123456作为默认账号密码并带有useUnicodetruecharacterEncodingUTF-8serverTimezoneGMT%2B8的时区与字符集参数建议初始化时与之一致减少后续连接报错。五、使用本地工具连接并初始化库表容器启动后可以在本地使用数据库客户端如 Navicat、SQLyog、DBeaver 等连接云服务器 MySQL主机地址云服务器公网 IP端口3306需在云厂商安全组中放行该端口用户名/密码root / 你设置的密码连接成功后即可在lottery库中执行建表语句。抽奖系统完整的建表脚本存放在项目doc/assets/sql/lottery.sql中可直接导入更稳妥的做法是跟随当前学习分支内的 sql 版本因为需求在迭代中不断升级直接使用 master 最新脚本可能与旧分支代码不匹配这一点在 第01节环境、配置、规范 中已明确提示。lottery.sql开头会先创建数据库create database lottery;随后创建抽奖系统各业务表。以活动配置表activity为例完整语句见 第04节抽奖活动策略库表设计create table activity ( id bigint auto_increment comment 自增ID, activityId bigint null comment 活动ID, activityName varchar(64) not null comment 活动名称, activityDesc varchar(128) null comment 活动描述, beginDateTime datetime not null comment 开始时间, endDateTime datetime not null comment 结束时间, stockCount int not null comment 库存, takeCount int null comment 每人可参与次数, state int null comment 活动状态编辑、提审、撤审、通过、运行、拒绝、关闭、开启, creator varchar(64) not null comment 创建人, createTime datetime not null comment 创建时间, updateTime datetime not null comment 修改时间, constraint activity_id_uindex unique (id) ) comment 活动配置;整个抽奖系统围绕以下核心表展开活动配置表activity、策略配置表strategy概率、玩法、库存、奖品、策略明细表strategy_detail、奖品配置表award、用户参与活动记录表user_take_activity、用户活动参与次数表user_take_activity_count以及按分库分表设计的用户策略计算结果表user_strategy_export_001~004。六、MySQL 在本项目中的联动角色MySQL 部署完成并非终点它是后续多个组件的基础设施这里给出两个已在文档中确认的联动点1. xxl-job 依赖 MySQL 存储调度数据在 第05节部署环境 xxl-job 中xxl-job-admin 启动时通过 JDBC 连接 MySQL示例中为jdbc:mysql://172.17.0.6:3306/xxl_job?useUnicodetruecharacterEncodingUTF-8serverTimezoneGMT%2B8需要提前在 MySQL 中创建xxl_job库并导入对应的xxl-job.sql初始化脚本。这要求本节把 MySQL 的账号、密码、字符集与时区配置到位。2. canal 依赖 MySQL 开启 binlog在 第08节部署环境 canal 中需要把抽奖系统分库分表数据通过 canal 同步到 Elasticsearch。canal 的原理是伪装成 MySQL slave 订阅 binlog因此 MySQL 需要开启 binlog 写入功能、设置binlog-format ROW并创建一个只读权限账号用于订阅。可通过SHOW VARIABLES LIKE %log_bin%;验证是否开启。是否提前开启可根据你的学习进度决定但应知道 MySQL 5.73306 端口是该环境的既定版本基线。七、小结本节完成了抽奖系统运维链路中的存储地基搭建从docker search mysql与 Docker Hub 确认版本到docker pull mysql:latest拉取镜像再到docker run启动容器并完成端口、密码、数据持久化配置最后通过本地客户端连接云服务器 MySQL 并导入lottery.sql建表语句。MySQL 就绪后就可以继续部署 xxl-job调度、Nacos注册中心、Elasticsearch/Kibana检索与 canal数据同步逐步把 Lottery 分布式抽奖系统的完整运行环境搭建起来。本节涉及的关键仓库文档第01节在云服务器部署 Docker第02节部署环境 Redis第03节部署环境 Kafka第04节抽奖活动策略库表设计第05节部署环境 xxl-job第08节部署环境 canal赞分享文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载相关推荐log-lottery抽奖系统技术实现与部署指南log lottery抽奖系统技术实现与部署指南 技术架构解析 log lottery是一个基于现代前端技术栈构建的3D抽奖应用其核心架构采用分层设计理念。前前端桌面应用年会抽奖系统部署指南从零开始搭建专业抽奖平台年会抽奖系统部署指南从零开始搭建专业抽奖平台 想要让企业年会或团队活动中的抽奖环节更加专业高效吗Lucky Draw前端抽奖应用正是你需要的完美解决方案。这前端Docker部署lottery从零开始构建高可用抽奖系统的完整流程Docker部署lottery从零开始构建高可用抽奖系统的完整流程 在当今数字化时代年会抽奖活动已成为企业文化建设的重要环节。lottery作为一款基于Ex后端前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Linux系统编程之通用I/O模型

Linux系统编程之通用I/O模型

目录简介通用I/O示例代码copy.c编程思路简介 上次我们简单介绍了一下Linux系统编程的环境搭建,这篇开始正式走进Linux系统编程的篇章。我们之前介绍操作系统的时候说过,无非是为了更好控制硬件才选择开发操作系统,人与硬件的交互无非就是人输…

2026/10/2 8:59:42 阅读更多 →
ESLint插件在VSCode中不提示、不生效:TaoToken统一Key通道下的排查与配置骨架

ESLint插件在VSCode中不提示、不生效:TaoToken统一Key通道下的排查与配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 9:00:19 阅读更多 →
2026年06月06日最热门的开源项目(Github):用TaoToken统一Key跑通本地AI工具链

2026年06月06日最热门的开源项目(Github):用TaoToken统一Key跑通本地AI工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 5:31:22 阅读更多 →

最新新闻

9款AI论文工具实测:从开题报告到文献综述,TaoToken统一Key怎么配

9款AI论文工具实测:从开题报告到文献综述,TaoToken统一Key怎么配

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 23:29:48 阅读更多 →
2026年10月长宁区政企销毁Top3推荐,优缺点全解析

2026年10月长宁区政企销毁Top3推荐,优缺点全解析

政企销毁到底在销毁什么 政企销毁, 这个意思其实就是要对企业和政府机构的涉密文件做过期产品来做专业的处置。长宁区的写字楼密集得很, 这个地方每年都会产生大量的合同是要被销毁的。还有很多账册是需要被处理的, 那些旧的设备也是要报废的。很多人心里头都以为销毁这个东西就…

2026/10/2 23:29:48 阅读更多 →
CSS hover 选择器全解析:从基础到进阶的几种选择方式

CSS hover 选择器全解析:从基础到进阶的几种选择方式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 23:29:48 阅读更多 →
模电笔记:从半导体器件到放大电路与直流电源的完整复习框架

模电笔记:从半导体器件到放大电路与直流电源的完整复习框架

1. 模电到底难在哪:先把这个想明白再看笔记模电这门课的打开方式,跟高数、电路分析完全不一样。当年我期末前抱着教材背了两天公式,结果拿到试卷发现满纸都是不认识的电路,整个人当场就懵了。后来真正做硬件、调板子,才…

2026/10/2 23:29:48 阅读更多 →
汽车电子知识体系全拆解:从CAN总线到OTA升级的实战学习路径

汽车电子知识体系全拆解:从CAN总线到OTA升级的实战学习路径

1. 汽车电子知识体系的全景拆解1.1 为什么汽车电子值得系统化学习十年前我刚入行做车载控制器测试的时候,整个部门能说清楚CAN报文里每一个字节含义的人不超过三个。那时候大家修车靠经验,调ECU靠试错,遇到总线通信故障基本就是换件大法。现在…

2026/10/2 23:29:48 阅读更多 →
工程师成长之路:从入门到独立负责的实战复盘

工程师成长之路:从入门到独立负责的实战复盘

先说结论:这篇文章是写给那些正在犹豫要不要走工程师这条路、或者刚上路没多久还比较迷茫的同学的。我自己就是一路踩坑走过来的人,从刚开始连 Git 都不会用的纯小白,到后来能独立负责模块、带新人、做技术方案,中间确实有不少值得…

2026/10/2 23:28:48 阅读更多 →

日新闻

从零搭建AI工程化:模型之外的完整闭环

从零搭建AI工程化:模型之外的完整闭环

先搞清楚一件事:从零开始做 AI 工程化,难的从来不是调模型、写提示词,而是把一套原型 Demo 变成长得像是“正经系统”的东西。你手里可能已经有了能跑通的代码,也可能刚读完一些概念,但真到了要把它变成可维护、可观测…

2026/10/2 0:00:20 阅读更多 →
大模型训练显存估计与混合精度训练实战指南

大模型训练显存估计与混合精度训练实战指南

1. 大模型训练显存估计与混合精度训练详解显存不够用,几乎是每个做大模型训练的人都会撞上的第一堵墙。你可能也经历过:模型代码写完了,数据管道跑通了,满心欢喜地按下训练启动脚本,结果几秒钟后终端弹出一行红字——C…

2026/10/2 0:00:20 阅读更多 →
小样本学习数据集选型指南:27个真正可用的高质量数据集

小样本学习数据集选型指南:27个真正可用的高质量数据集

1. 小样本学习的“弹药库”:为什么你总在找数据集,却总找不到真正能用的? 小样本、数据集——这两个词最近半年在我处理的200多个AI项目咨询里,出现频率排进前三。不是模型调不好,不是代码写不对,而是卡在…

2026/10/2 0:00:20 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 6:09:11 阅读更多 →