新闻详情

新闻详情

首页 / 资讯中心 / 详情

Lottery 抽奖系统部署实录:Docker 安装 MySQL 与抽奖库表初始化指南

发布时间:2026/9/25 21:39:16来源:尧图网络
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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

KytyPS5游戏兼容性深度实测:UE5、Unity与自研引擎PS5大作在模拟器上的表现全解析 2026/9/25 22:15:04

KytyPS5游戏兼容性深度实测:UE5、Unity与自研引擎PS5大作在模拟器上的表现全解析

KytyPS5游戏兼容性深度实测:UE5、Unity与自研引擎PS5大作在模拟器上的表现全解析 【免费下载链接】KytyPS5 PlayStation 5 emulator for Windows, Linux and MacOS 项目地址: https://gitcode.com/gh_mirrors/ky/KytyPS5 KytyPS5 是一款免费开源的 PlayStati…

阅读更多 →
YouTube Shorts 和长视频怎么分别复盘 2026/9/25 22:14:58

YouTube Shorts 和长视频怎么分别复盘

避免跨格式数据误判的数据分析和 96SMM 产品支持 两种格式的发现方式和观看行为不同。应在 YouTube Analytics 中按内容类型过滤,分别建立成功标准,再分析它们如何为同一频道目标服务。 本文按“明确问题、完成内容、记录数据、诊断原因、选择支持、进入…

阅读更多 →
靠谱的多功能真空镀膜机源头生产厂家质量参考评选 2026/9/25 22:14:50

靠谱的多功能真空镀膜机源头生产厂家质量参考评选

很多人选多功能真空镀膜机时,容易踩这4个大坑选多功能真空镀膜机,不少客户都有过糟心经历:要么买完设备参数虚标,实际量产时膜厚控制波动大、良率上不去;要么售后响应慢,机器出故障要等半个月才能修;还有的只卖裸机&am…

阅读更多 →
衢州厂家直供切割式污水泵,带切割装置不易堵塞,适用于化粪池及餐饮废水排放 2026/9/25 22:14:16

衢州厂家直供切割式污水泵,带切割装置不易堵塞,适用于化粪池及餐饮废水排放

说起切割式污水泵,先从基础常识聊起在城镇排水和污水收集处理体系中,排污泵是支撑整个系统连续运转的核心设备。传统的普通排污泵大多只针对常规无缠绕杂质的污水设计,而在实际使用场景中,我们遇到的污水往往成分复杂:…

阅读更多 →
Web1.0到Web3.0代际演进:从静态页面到密码学主权 2026/9/25 22:14:09

Web1.0到Web3.0代际演进:从静态页面到密码学主权

1. 从“读报纸”到“开报社”:一次真实场景还原的代际演进我第一次接触互联网是在2001年,用拨号上网打开新浪首页——整页文字几张GIF动图,加载要等半分钟,点一个链接得重新刷新整个页面。那时没人叫它Web1.0,我们只管…

阅读更多 →
【Python3基础】08-高阶函数、闭包与装饰器 2026/9/25 22:14:09

【Python3基础】08-高阶函数、闭包与装饰器

▒ 目录 ▒🛫 导读本篇知识路线1️⃣ 匿名函数匿名函数的定义和使用匿名函数的优点2️⃣ 闭包闭包介绍闭包的注意事项闭包的作用3️⃣ 装饰器写个装饰器装饰器语法糖4️⃣ 装饰器适合处理什么🛬 文章小结🛫 导读 当函数能够被传递、保存和返回…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉