Docker启动MySQL完整指南:镜像选择、数据持久化与常见坑
用 Docker 启动 MySQL听起来就是在命令行里敲一条docker run的事情。但我这些年帮别人排查问题发现一大批人其实就卡在这一步上容器起来了重启之后数据没了密码明明设了客户端却连不上数据写进去中文全变成问号。这篇文章我就把整个流程从头到尾拆开讲从镜像选型、目录规划、命令参数到常见坑尽量让第一次接触 Docker 的读者也能照着做让已经踩过坑的人搞清楚背后到底发生了什么。1. 做之前先想清楚不是敲一条命令那么简单很多人习惯拿到需求就docker run mysql跑起来能用就算完事。这种思路在本地测试环境勉强能行一旦放到开发协作、数据恢复或者生产模拟场景就会暴露出各种问题。所以我想先在动手之前把几个决定后续体验的设计点讲清楚。1.1 为什么用 Docker 跑 MySQL直接在一台机器上装 MySQL 其实也不难下载安装包、初始化、改配置、起服务一套流程走下来也就十几分钟。但真正让人头疼的是环境隔离和版本切换。你的电脑上可能已经装了 MySQL 5.7但项目需要用 MySQL 8.0 的新特性或者同一个服务器上有好几个应用各自依赖不同版本的数据库。如果用传统安装方式两个版本很容易互相踩库文件、端口、服务脚本全都可能冲突。Docker 的优势在于把整个 MySQL 运行环境打包在容器里。容器相当于一个轻量级的隔离空间里面有独立的文件系统、网络端口和进程环境和宿主机只共享内核。这意味着你可以同时跑一个 5.7 和一个 8.0 的 MySQL只要把端口映射错开就行。再一个是清理干净不要了直接删容器和相关数据目录不会在系统里留下一堆残留服务。迁移方便也是很大的加分项。我在某公司协助迁移一套老系统时因为目标机器和源机器的系统版本完全不一样传统安装方式光是处理依赖就折腾了半天。换成 Docker 之后直接把镜像和数据目录带过去重新跑一个容器几步结束。对于要经常把环境交付给别人的场景这几乎是碾压性的优势。1.2 镜像版本怎么选镜像选型是很多人忽略的第一步但也最容易埋坑。Docker Hub 上的 MySQL 镜像大致分两类一类是官方镜像一类是各种第三方优化镜像。我一般只推荐用官方镜像原因很简单官方镜像更新及时、安全补丁跟得上、文档和已知问题的信息也最齐全。第三方镜像有时候会内置一些额外工具或修改过的配置听起来很美好但你很难确定它改了什么排查问题的时候会多一层不确定性。官方镜像版本标签主要在5.7、8.0、8.4这一梯队。早期还有5.5、5.6我建议直接忽略。就当前的情况来说新项目选8.0或8.4老项目如果还依赖5.7的一些旧行为就继续用5.7。很多教程让你直接latest这是个非常危险的习惯。latest本质是一个移动标签官方哪天把默认版本从 8.0 推到 8.4 或者更高你重新拉镜像一启动数据库大版本变了如果是生产环境重放数据后果非常严重。另外提醒一下拉取镜像的时候尽量写完整 tag比如mysql:8.0.36这样的具体小版本号。这样能保证你本地跑的镜像和同事、服务器上跑的完全一致避免出现“我本地没这个 Bug服务器上就有”的尴尬。曾经有个同事因为用了mysql:8.0这种大版本标签和别人的小版本不一致一个查询计划走法不一样性能差了十倍排查到最后才意识到是版本差异。1.3 数据持久化怎么设计目录才有安全感容器本身是“用完即走”的这是 Docker 的设计哲学。MySQL 容器被删除之后容器内部生成的数据文件会直接消失。如果你没有做过任何持久化处理那 MySQL 里的库表数据就全部没了。解决方式是把容器内的数据目录挂载到宿主机上也就是目录映射。官方镜像中 MySQL 的数据默认写在/var/lib/mysql所以至少要保证这个路径被挂载出来。挂载方式有两种。Bind mount绑定挂载直接把宿主机的某个目录映射到容器内目录比如/data/mysql/data:/var/lib/mysql。好处是你可以在宿主机上直接看到数据文件备份、检查都很直观适合我这种喜欢直接操作文件的人。Named volume命名卷用docker volume create创建卷运行容器时挂载进去。这种方式更符合 Docker 的推荐做法因为卷的生命周期由 Docker 管理也更方便多个容器共享数据。缺点是你想直接查看或修改数据文件的时候还要绕到 Docker 的数据目录下稍微麻烦一点。我的建议是测试环境随意正经使用一定要用 bind mount而且要把配置、数据、日志分开规划。常见的目录结构是下面这样的/data/mysql/ ├── conf/ # 存放自定义 my.cnf ├── data/ # 存放数据文件 ├── logs/ # 存放容器输出日志 └── backup/ # 存放备份文件这样即使容器崩溃被删掉只要数据目录还在重新起一个容器挂上同一个目录数据就能恢复。我做项目时习惯把这一整套目录结构写进部署文档里避免临时找地方乱放。2. 环境准备装好 Docker 只是第一步开始跑容器之前先把基础环境确认清楚。很多连接不上、权限报错的问题其实在这一步就能提前发现。2.1 先确认 Docker 环境真的能干活在终端执行docker --version和docker info。docker info会输出 Docker 的详细状态包括容器数量、镜像数量、运行引擎正常与否。我之前遇到过 Docker 服务已经挂掉但自己没发现的情况执行任何命令都会报一堆错误所以第一个检查动作永远是确认服务状态。Linux 环境下如果当前用户不在docker用户组里执行docker命令会提示无权限。最简单的解决方案是把当前用户加入 docker 组并重新登录会话sudo usermod -aG docker $USER newgrp docker注意加入 docker 组等价于把 root 权限开放给了该用户所以这一步要基于对安全边界的理解来做生产服务器上格外谨慎。执行docker ps如果能看到一个列表哪怕是空的说明 Docker 环境基本可用。顺便说一句docker ps是后面最常用的命令它默认只显示运行中的容器要加-a才能看到所有容器。2.2 拉取镜像的常见障碍执行拉取命令docker pull mysql:8.0如果网络状况不好或者镜像拉取速度非常慢可以配置镜像加速器。在/etc/docker/daemon.json中配置{ registry-mirrors: [https://你的加速地址] }配置之后重启 Docker 服务。这里我不推荐具体某个加速地址因为不同时期可用性不一样建议根据自己所在网络环境选择国内主流云厂商提供的镜像加速服务或者直接查询官方文档中的配置方法。拉完之后用docker images确认镜像存在。注意观察镜像大小MySQL 8.0 通常在 500MB 以上如果很小或者下载瞬间完成要怀疑是不是拉到了奇怪的标签。2.3 端口规划避免 3306 不够用MySQL 默认监听 3306 端口。宿主机上如果已经装了原生 MySQL或者有另一个容器占用了 3306再启动新容器时就会报端口冲突。我在一个办公服务器上遇到过两个项目组分别用了3306和3307后来又来了第三个项目端口已经不知道该怎么分配了。后来我们干脆定了一个约定项目名加端口后缀比如33061、33062全部记录在统一文档里。这样虽然端口号不常见但一眼就能看出来对应哪个服务。Docker 启动 MySQL 时的网络模式默认是bridge通过-p把容器内的 3306 映射到宿主机的任意空闲端口。比如-p 33061:3306前面的数字是宿主机访问端口后面的 3306 是容器内 MySQL 的监听端口。默认配置下这个映射会让宿主机的所有网卡接口都能访问该端口如果有安全顾虑可以考虑只绑定到特定 IP-p 127.0.0.1:33061:3306这样只有本机可以访问其他机器访问不到适合本地开发环境。3. 启动第一个容器命令逐段拆解环境准备好镜像也拉下来了现在正式进入启动环节。这一章我会从一条最小命令讲起然后把参数逐一拆开再从生产可用角度补上配置、持久化和初始化脚本。3.1 一条最小启动命令最精简的启动命令是这样docker run -d \ --name mysql-test \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDroot123 \ mysql:8.0逐段解释一下。-d表示后台运行容器否则会在前台打印日志退出终端后容器也会退出。--name mysql-test给容器起名字后面管理容器时就不用记一串随机 ID。-p 3306:3306做端口映射宿主机 3306 访问容器 3306。-e MYSQL_ROOT_PASSWORDroot123设置 root 用户的初始密码这是官方镜像读取的环境变量。命令最后是镜像名和 tag。执行后跑一下docker ps看到STATUS列是Up说明容器起来了。但容器起来了不等于 MySQL 已经准备好因为 MySQL 首次启动要做数据目录初始化可能需要几十秒。3.2 环境变量不只是 root 密码官方镜像支持多个环境变量合理使用可以省掉不少手工配置时间。我常用的几个MYSQL_ROOT_PASSWORD设置 root 密码。整条命令里直接写在命令行容易被别人通过进程列表看到生产环境建议改用docker-compose的.env文件或者用--env-file从文件读取。MYSQL_DATABASE在首次初始化时自动创建的数据库名。注意它只在新容器首次创建数据目录时生效如果你已经用旧数据目录启动过再改这个变量就不会创建新库了。MYSQL_USER和MYSQL_PASSWORD创建一个普通业务用户并赋予该数据库所有权限。生产环境不建议用 root 连接业务库所以这个变量很有用。MYSQL_ROOT_HOST如果数据库专门提供给远程连接可能需要把 root 的允许连接主机范围扩大默认只允许本地连接。除了环境变量还有一个更规范的方式把初始化 SQL 脚本放到挂载目录/docker-entrypoint-initdb.d。这个目录下的.sh、.sql、.sql.gz文件会在首次启动数据库时按文件名顺序执行。我在项目里经常把建表、导入初始数据的脚本扔在里面省去了手工执行的步骤docker run -d \ --name mysql-app \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDroot123 \ -e MYSQL_DATABASEapp_db \ -v /data/mysql/init:/docker-entrypoint-initdb.d:ro \ -v /data/mysql/data:/var/lib/mysql \ mysql:8.0注意初始化脚本只在“首次创建数据目录”时生效。如果你用已经初始化过的数据目录脚本会被忽略。这一点经常有人踩改了初始化脚本重跑容器结果数据一点没变。3.3 配置文件与字符集生产环境必须额外处理默认启动的 MySQL 很多参数都用的是镜像内置的默认值并不适合所有场景。比如低配机器上 MySQL 8.0 默认的innodb_buffer_pool_size可能吃满 1G 内存物理内存只有 2G 的服务器直接卡死。另外字符集默认可能是utf8mb4并非总是开启但很多老项目还默认latin1中文写入就乱码。官方镜像支持挂载自定义配置。先在宿主机写好一个my.cnf[mysqld] character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci default-time-zone08:00 max_connections500 skip-name-resolve [client] default-character-setutf8mb4启动时把配置目录挂载到/etc/mysql/conf.ddocker run -d \ --name mysql-prod \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDroot123 \ -v /data/mysql/conf:/etc/mysql/conf.d:ro \ -v /data/mysql/data:/var/lib/mysql \ mysql:8.0解释一下几个关键配置。character-set-server决定数据库内部默认字符集collation是排序规则。统一用utf8mb4是为了完整支持中文、表情符号和一些非常规字符排序规则一般选utf8mb4_unicode_ci兼顾兼容性。default-time-zone如果项目是国内业务建议显式设置08:00否则 MySQL 默认使用宿主机时区容器和业务服务器时区不同会导致时间差八小时的诡异问题。skip-name-resolve可以让连接时不走反解域名流程连接速度会快一些代价是user表里只能匹配 IP 或者通过MYSQL_ROOT_HOST设置授权。这个开关比较实用但如果你的用户权限是按主机名配置的开了之后权限会失效。我通常默认开启因为绝大多数场景客户端连接都是直接连 IP。3.4 用 docker compose 管理才是长期方案docker run命令适合临时验证真正长期维护的服务我更推荐用 Docker Compose。把容器配置写进一个docker-compose.yml团队其他人也能一眼看懂改参数有据可查。一个可参考的docker-compose.ymlservices: mysql: image: mysql:8.0 container_name: mysql-prod restart: always environment: MYSQL_ROOT_PASSWORD: root123 MYSQL_DATABASE: app_db TZ: Asia/Shanghai ports: - 3306:3306 volumes: - /data/mysql/data:/var/lib/mysql - /data/mysql/conf:/etc/mysql/conf.d:ro - /data/mysql/init:/docker-entrypoint-initdb.d:ro command: - --character-set-serverutf8mb4 - --collation-serverutf8mb4_unicode_ci启动方式docker compose up -d第一次执行时它会自动拉镜像、创建网络、启动容器。注意新版 Docker 默认是docker compose中间没有横杠旧版本用docker-compose如果你的机器提示找不到命令那就是版本差异问题换一种写法即可。restart: always这个配置很实用。宿主机重启、Docker 服务重启后容器会自动拉起。有个项目正好赶上机房计划内重启其他服务都得手动启就 MySQL 自动恢复了当时觉得这行配置特别值。command字段可以在命令行追加 MySQL 启动参数等效于写在配置里。像字符集这种全局设置两条路都行。我更习惯把复杂配置放在my.cnf文件里command只放一两个临时调试用的参数。4. 验证与日常管理容器起来不代表能用容器状态显示Up数据库一定准备好了吗不是。MySQL 容器启动要完成初始化过程尤其是第一次冷启动可能需要一二十秒甚至更久。这个阶段执行连接操作会报错让我分不清是 MySQL 没起来还是网络问题。4.1 怎么看容器日志和连接状态最可靠的检查方式是看日志docker logs mysql-prod日志末尾如果出现类似ready for connections的输出说明数据库已经准备好服务连接。在没有这个提示之前先不要急着去连。然后在宿主机上验证端口监听ss -lntp | grep 3306看到LISTEN状态后可以用宿主机的mysql客户端连接前提是宿主机装了客户端mysql -h 127.0.0.1 -P 3306 -u root -p如果没有客户端可以进入容器内操作docker exec -it mysql-prod mysql -u root -pdocker exec是进入运行中容器执行命令的通用方法。注意密码是进入后提示输入的不要在命令行里输明文。连接成功后第一件事建议执行几个基础检查SELECT VERSION(); SHOW VARIABLES LIKE character_set_server; SELECT NOW();字符集变量如果显示utf8mb4说明自定义配置生效了。4.2 容器生命周期启动、停止、重启、删除日常管理中MySQL 容器会被执行各种操作。常用的命令我列一下docker stop mysql-prod停止容器数据不会丢。docker start mysql-prod启动已停止的容器。docker restart mysql-prod重启容器相当于先停再起。docker rm mysql-prod删除容器注意删除后数据如果没有挂载卷就会丢。docker rm -f mysql-prod强制删除运行中的容器。这里特别强调一下容器和数据卷的关系。如果你启动时挂了数据卷那么删除容器后数据还在宿主机目录里重新挂载同一目录就能恢复。如果没挂卷删除容器等于删库跑路。版本升级场景也常遇到。比如从 5.7 升到 8.0理论上可以不删数据直接挂载启动但我强烈建议先把数据目录完整备份再做一次小规模验证。MySQL 大版本升级的内部字典变化非常复杂直接挂旧数据目录启动新版本有时候能起但等查询报错的时候再去追查就迟了。我一般的做法是备份 - 停止容器 - 用新镜像起一个新容器挂载同一数据目录 - 观察日志和关键查询确认无误后再切换到新端口。4.3 数据备份别把宝全押在磁盘上容器化环境里备份思路和本地安装略有不同但核心还是mysqldump。官方镜像自带这个工具直接在容器内执行即可docker exec mysql-prod \ mysqldump --single-transaction --routines --triggers --events \ -u root -p app_db /data/mysql/backup/app_db_$(date %F).sql解释一下参数。--single-transaction保证备份过程中不锁表适合 InnoDB 引擎--routines和--triggers备份存储过程和触发器--events备份事件。备份文件落在宿主机上后再定期把备份文件迁移到其他存储位置或者至少复制到另一台机器。容器环境切换方便反而让人容易把“容器”当成“数据存储保障”实际什么都不是。恢复的时候也很简单docker exec -i mysql-prod mysql -u root -p app_db backup.sql管道方式把备份文件喂进容器内的mysql命令。5. 踩坑实录把能踩的坑提前替大家踩一遍这部分是从我实际排查过的案例里整理出来的高频率问题。每次遇到这些问题我都会把当时的排查过程记下来时间久了就有了一份比较完整的问题速查表。5.1 常见错误速查表现象常见原因解决办法容器启动后立即退出端口被占用更改宿主机映射端口端口被占用报port is already allocated宿主机端口已被其他服务或容器占用docker ps查看占用换端口或停止占用进程连接报Access denied for user root密码环境变量与实际配置不符或执行了初始化脚本检查日志初始化流程用MYSQL_ROOT_PASSWORD重置并清理数据目录容器内 MySQL 能连宿主机连不上端口映射未生效或防火墙拦截检查docker ps端口列检查防火墙策略中文乱码字符集未设置为utf8mb4配置character-set-serverutf8mb4重启容器检查库表字符集启动后内存占用爆满被系统 killinnodb_buffer_pool_size过大配置调小 buffer pool或限制容器内存修改了initdb.d脚本重跑容器不生效数据目录已初始化删除数据目录前提已备份再重新初始化时间显示差 8 小时容器时区未设置设置环境变量TZAsia/Shanghai或配置文件指定时区表格只能提供快速定位下面几个问题详细展开讲讲。5.2 端口冲突一听到报错内容就知道问题在哪端口冲突是新手遇到最多的错误报错信息非常有辨识度docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql-prod: Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use看到bind: address already in use就知道是宿主机 3306 端口被占了。排查方式ss -lntp | grep 3306如果显示已经被某个进程占用找出来是谁。假设是另一个容器的映射端口改新容器的宿主机端口即可。假设是宿主机自带的 MySQL 服务占用那就要决定谁让位。总之一条原则宿主机上每个端口只能被一个服务监听映射端口冲突的时候改宿主机侧端口最省事。5.3 数据目录权限启动即崩溃的隐形杀手如果数据目录是手动创建的或者复制自其他机器经常会遇到容器启动后直接退出的情况。日志里通常有[ERROR] mysqld: Cant create/write to file /var/lib/mysql/ib_logfile0 (OS errno 13 - Permission denied)原因是官方镜像内的 MySQL 进程以系统限制的身份运行而挂载的宿主机目录属主不是这个身份。解决办法是调整目录属主官方镜像中 MySQL 的默认用户 UID 是 999mkdir -p /data/mysql/data chown -R 999:999 /data/mysql/data我见过有同学直接chmod 777数据目录来解决问题马马虎虎能跑但权限过度开放总归是个隐患。更稳妥的做法是保持属主一致文件权限保持常规的 750 或 755 即可。还有一个容易忽略的情况如果/data/mysql本身在挂载点下面或者文件夹带有特殊属性可能导致容器启动没问题但读写极慢。遇到这种异样的性能问题优先检查挂载类型和磁盘 I/O。5.4 MySQL 内存占用过高低配置机器上的生存指南MySQL 8.0 默认配置里的innodb_buffer_pool_size一般是物理内存的 75%这个数值在专用数据库服务器上是合理的但如果你是在一台 4G 内存的小机器上跑开发库一个 MySQL 容器直接吃满内存系统开始频繁使用 swap响应变得极慢。我遇到过一个实际案例某开发环境在一台 2G 的小机器上跑着好几个服务MySQL 容器启动后没几分钟就被系统 OOM Kill反复重启反复挂。最后把innodb_buffer_pool_size手动调整为 256M再把max_connections降到 100同时用 Docker 的--memory参数限制容器内存上限docker run -d \ --name mysql-dev \ --memory768m \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDroot123 \ mysql:8.0限制容器内存上限的好处是即使 MySQL 自身配置不当也不会把整个宿主机拖死。当然生产环境性能敏感时不要盲目限制这个技巧只适合小内存机器和开发环境。5.5 字符集乱码从源头止损乱码出现之后很多人第一反应是改应用代码其实大多数时候问题出在 MySQL 服务端字符集不一致。启动时配置了utf8mb4还不能保证一劳永逸因为库、表、连接三个层级都有自己的字符集设定。排查方式SHOW VARIABLES LIKE character_set%; SHOW CREATE DATABASE app_db; SHOW CREATE TABLE app_table;如果服务端已经是utf8mb4客户端连接时指定了utf8mb4但库里建的表现在还是latin1那历史数据写入时重新转换就很麻烦。所以最根本的止损方式是在初始化阶段就把库表和连接统一到 utf8mb4建库语句显式声明CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;另外连接串里也要加上characterEncodingutf8Java 驱动或者charsetutf8mb4其他驱动。之前有同事在服务端配置齐全的情况下还是乱码折腾半天发现是连接串没有指定编码服务端和客户端各说各话。写在最后MySQL 容器化这件事看起来只是把启动方式从一键安装变成了docker run但实际维护下来真正的门槛在数据持久化和对运行机制的理解上。我个人在实际操作中有一个很深的体会容器本身是随时可以替换的真正值钱的是挂在容器外面的数据目录和经过验证的配置文件。所以在整个使用过程中我始终坚持把数据和配置放在宿主机固定目录下用 Compose 文件做统一管理这样无论容器怎么换只要目录还在环境就能快速重建。每踩一个坑我都会先在日志里找根源再决定是改容器配置、改系统设置还是改应用连接参数这套方法帮我节省了大量反复试错的时间。最后多嘱咐一句如果你也是刚上手先别急着在生产环境玩花样拿一台测试机器把初始化、挂载、连接、备份这条链路完整走一遍再去面对线上需求心里会踏实很多。

相关新闻

Traycer CLI完全参考:用终端管理Host、登录认证、Worktree与Agent自动化

Traycer CLI完全参考:用终端管理Host、登录认证、Worktree与Agent自动化

【免费下载链接】traycer Traycer: Nerve Center for Agentic Coding 项目地址: https://gitcode.com/gh_mirrors/tr/traycer 点击查看 免费下载 Traycer 是面向 Agentic Coding 的"神经中枢",而 Traycer CLI 就是让你在终端里管理 Host、登录…

2026/10/11 19:19:22 阅读更多 →
PDF素材库转PPT母版:批量提取、去背景与可复用版式工程化实践

PDF素材库转PPT母版:批量提取、去背景与可复用版式工程化实践

简介:这份华为PPT素材库为内部培训专题资料,面向需要制作网络拓扑图、产品架构图与业务演示文稿的IT从业者、售前工程师及培训讲师,帮助解决组网图缺乏标准化图形符号、产品示意不统一的问题。资源包共1个PDF文件,大小约2.38MB&am…

2026/10/11 19:19:22 阅读更多 →
证卡打印机CX7000驱动安装全攻略:32位与64位选型、避坑与批量部署

证卡打印机CX7000驱动安装全攻略:32位与64位选型、避坑与批量部署

简介:这份资源是证卡打印机JVC/IST CX7000的32位与64位驱动程序合集,面向需要制作身份证、会员卡、门禁卡等高清晰防伪证件的企业、学校及政府机构用户,也适合负责设备部署与维护的技术人员。压缩包共281个文件,约47.58MB&#xf…

2026/10/11 19:19:22 阅读更多 →

最新新闻

HyperQwen int8 张量核实战:修复 Marlin W4A8 负缩放 bug 并逐层选择激活量化

HyperQwen int8 张量核实战:修复 Marlin W4A8 负缩放 bug 并逐层选择激活量化

HyperQwen int8 张量核实战:修复 Marlin W4A8 负缩放 bug 并逐层选择激活量化 【免费下载链接】HyperQwen Serve large Qwen models fast on the GPUs you actually own. Qwen3.8-27B on a single 24 GB card with vLLM: 127 tok/s single-user (381 when the answe…

2026/10/11 20:55:42 阅读更多 →
VC++双人对决围棋程序:规则与界面实现全解析

VC++双人对决围棋程序:规则与界面实现全解析

简介:一份可以直接编译运行的VC双人围棋对弈程序源码,基于MFC设计,面向刚开始学习VC或对游戏编程感兴趣的开发者。程序支持双人在同一台电脑上轮流落子,自动完成棋盘绘制与胜负判断,并针对15/17寸液晶屏幕提供了窗口尺…

2026/10/11 20:55:42 阅读更多 →
HaleHound-CYD首次启动指南:触屏校准、屏幕旋转与5个常见故障快速排查

HaleHound-CYD首次启动指南:触屏校准、屏幕旋转与5个常见故障快速排查

【免费下载链接】HaleHound-CYD ESP32-DIV HaleHound Edition for Cheap Yellow Display - Multi-protocol offensive security toolkit 项目地址: https://gitcode.com/gh_mirrors/ha/HaleHound-CYD 点击查看 免费下载 HaleHound-CYD 是运行在 ESP32 Cheap Yellow…

2026/10/11 20:55:42 阅读更多 →
五台山景点购票系统:分时预约与防超卖技术方案

五台山景点购票系统:分时预约与防超卖技术方案

简介:这份PPT资源面向计算机专业学生与Java Web开发者,围绕五台山景点购票系统的设计与实现展开,可作为毕业设计、课程设计或SSM框架学习项目的参考方案。内容涵盖系统背景、需求分析、SSM框架选型、管理员与用户功能模块划分、系统测试及结论…

2026/10/11 20:55:42 阅读更多 →
基于模拟退火的VRPSPD求解及Matlab实现——同时取送货车辆路径问题

基于模拟退火的VRPSPD求解及Matlab实现——同时取送货车辆路径问题

1. 项目概述:这是一个什么问题先聊一个做配送调度的朋友几乎都遇到过的情况:快递员早上出门装满一车货,沿途把包裹送出去,同时还要把用户退的旧件、要寄出的箱子一件件收回来。车上的货物量不是在消耗,而是在动态变化—…

2026/10/11 20:55:42 阅读更多 →
google/ax 点名依赖之后:agent 基建下半场,沙箱层开始卷了

google/ax 点名依赖之后:agent 基建下半场,沙箱层开始卷了

google/ax 点名依赖之后:agent 基建下半场,沙箱层开始卷了 【免费下载链接】substrate Agent Substrate: the core system 项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrate agent 生态的竞争重心正在肉眼可见地下移&#xf…

2026/10/11 20:54:41 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →