数据库装不上这件事说大不大说小能让人一整个下午都卡在第一步。MySQL 9.5.0 是 2025 年的创新版本Windows 下的安装流程和 8.x 时代相比有几个明显变化安装器界面调整、组件选择更细、默认认证插件已经是 caching_sha2_password、初始化阶段的日志提示也更啰嗦。这篇内容就是把我自己在几台不同 Windows 机器上装 MySQL 9.5.0 的完整过程拆开讲清楚从下载、组件选择、配置参数、服务注册到命令行验证和踩坑排查一步步给到可以直接照着做的方案。适合刚接触 MySQL 的新手也适合从 5.7、8.0 升级过来、发现老经验不太够用的老手参考。装数据库这件事流程本身不复杂真正耗时间的是那些藏在细节里的坑比如端口占用、服务名冲突、root 密码策略、字符集设置这些我都会在对应环节点出来。1. 安装前的整体规划与方案选型1.1 为什么先想清楚装哪种形态再动手很多人拿到安装包就直接双击结果装完发现要么多了一堆用不上的组件要么服务名和机器上已有的实例打架。MySQL 在 Windows 上其实有三种常见落地形态选错了后面返工成本很高。第一种是MySQL Installer 完整安装也就是官方那个带图形界面的安装器。它的好处是把服务端、客户端工具、连接器、示例数据库、文档都打包在一起勾选即装配置向导会帮你把服务注册、端口、root 密码、字符集一次性配好。缺点是体积大默认会推荐一堆你可能根本用不到的组件比如各种语言的连接器和示例库。第二种是ZIP 压缩包手动部署。下载一个几百兆的压缩包解压到指定目录自己写 my.ini、自己执行初始化命令、自己注册服务。这种方式对目录结构、配置文件、初始化参数的理解要求更高但胜在干净可控适合需要多实例并存、或者想把 MySQL 嵌进某个固定目录结构的场景。第三种是免安装的绿色使用严格说不算独立形态就是 ZIP 包解压后不注册服务每次用命令行手动启动 mysqld。适合临时验证、教学演示不适合长期跑业务。我个人的建议很直接单机开发、学习、小型项目用 Installer 完整安装最省事需要精确控制目录、要跑多个版本或多个实例、要做自动化部署的走 ZIP 手动部署。这篇内容以 Installer 为主线因为它是绝大多数人第一次装 MySQL 会选的路径同时在关键节点补充 ZIP 方式的差异说明方便你按需切换。1.2 版本选择9.5.0 这个创新版意味着什么MySQL 的版本线这几年分成了两条一条是长期支持线LTS一条是创新线Innovation。9.5.0 属于创新版本特点是新特性上得快、迭代节奏密适合想尝鲜、做技术验证、跟进新语法和新特性的场景。生产环境如果追求稳定通常会选 LTS 线。这个区别对安装过程有实际影响。创新版本的安装器更新比较频繁界面和组件列表可能和你网上搜到的旧教程对不上另外新版本默认的认证插件、默认字符集、默认 SQL 模式都可能是新的老项目迁移过来时要注意兼容性。我在装 9.5.0 的时候就发现配置向导里关于认证方式的说明文字比 8.0 时代更明确默认就是强密码加密这一点后面配置环节会细说。1.3 环境预检装之前先确认这几件事动手之前花五分钟做预检能省掉后面半小时的排查。我习惯按下面这张清单过一遍检查项要求检查方式不满足的后果操作系统版本Windows 10 1809 及以上 / Windows 11 / Server 2019 及以上winver 命令安装器可能直接拒绝运行磁盘空间系统盘至少预留 2GB数据目录所在盘按数据量预留资源管理器安装中途失败或初始化报错内存建议 4GB 以上任务管理器服务启动慢配置向导卡顿端口 3306未被占用netstat -ano 查端口服务注册成功但启动失败管理员权限当前账户具备本地管理员权限尝试以管理员运行服务注册、防火墙规则写入失败已有 MySQL 实例确认服务名、端口、数据目录不冲突services.msc 查看新实例覆盖或冲突端口检查这条特别值得强调。我遇到过一台机器3306 被某个后台程序占着安装器配置阶段一切正常服务也注册成功了但就是起不来事件日志里只给一句很含糊的启动失败。后来用netstat -ano | findstr :3306一查PID 对上一个完全不相干的进程。所以预检阶段就把端口确认掉比事后猜要高效得多。提示如果你机器上已经装过旧版本 MySQL强烈建议先确认旧实例的服务名和数据目录新装时换一个服务名比如 MySQL95和端口比如 3307避免两个实例互相干扰。卸载旧版本时也不要顺手删数据目录除非你确认里面没有需要保留的库。2. 下载与安装器组件选择的关键细节2.1 下载环节认准官方渠道与文件校验安装包只从官方站点获取这一点没有商量余地。第三方镜像站、网盘转存的安装包存在被篡改的风险数据库这种要长期跑、要存数据的组件来源必须干净。下载时注意区分两个东西一个是MySQL Installer安装器本体体积小另一个是安装器运行后在线拉取的各个组件包。前者是入口后者才是真正要装的东西。下载完成后建议做一次文件校验。官方页面通常会给出安装包的校验值用系统自带的证书工具或者命令行算一下哈希和官方公布的值对不上就重新下载。这一步很多人跳过但它是确认文件完整性的最直接手段尤其是网络不稳定、下载中断过的场景。2.2 安装类型选择五种预设怎么挑MySQL Installer 启动后第一个关键选择是安装类型。界面上一般给五类预设Developer Default开发者默认服务端 客户端工具 连接器 示例库 文档最全也最占空间。Server only仅服务端只装数据库服务适合已经有客户端工具、或者服务端和客户端分离部署的场景。Client only仅客户端只装命令行工具和图形客户端连远程库用。Full完整比开发者默认还全包含所有可选组件。Custom自定义自己勾选最灵活。我的习惯是选Custom。原因很实际Developer Default 会塞进来一堆用不上的连接器和示例库装完开始菜单里多出十几个图标真正天天用的就那两三个。Custom 模式下我只勾三样东西——MySQL Server、MySQL Shell或者命令行客户端、以及可选的 Workbench 图形工具。这样装出来的环境干净后续升级、卸载也清爽。具体到 9.5.0组件列表里服务端那一项会明确标注版本号勾选时确认一下是 9.5.0 而不是残留的旧版本条目。安装器有时会缓存历史版本信息列表里同时出现多个版本号选错就装成旧的了。2.3 安装路径与数据目录的规划路径规划是个容易被忽视但影响深远的决定。默认情况下安装器会把程序文件放在系统盘的 Program Files 下数据目录也放在系统盘。对于学习和轻量使用默认路径没问题但如果你的数据量会增长或者系统盘空间紧张就应该在安装阶段就把数据目录指到别的盘。这里有个原则程序目录和数据目录分开。程序目录跟着安装走升级时可能被替换数据目录是你的命根子要独立、要好备份、要空间充足。在配置向导的 Data Directory 那一步把路径改到一个专门的目录比如D:\mysql-data\9.5后续备份、迁移都方便。注意数据目录的路径不要包含中文和空格。虽然新版本对路径的处理比老版本健壮但某些工具链、脚本、备份方案对非 ASCII 路径的支持仍然不理想能避开就避开。2.4 服务名与端口的命名策略配置向导里会让你填 Windows 服务名和端口。服务名默认是 MySQL端口默认 3306。如果这台机器只跑一个 MySQL 实例用默认值最省心。如果要多实例并存服务名带上版本或用途后缀比如 MySQL95、MySQL-Dev端口也错开3307、3308 依次排。服务名一旦确定后面所有命令行操作、服务管理、脚本里都要用这个名字所以起名时想清楚。我见过有人装完随手把服务名改成带空格的名字结果写批处理脚本时各种引号转义非常别扭。命名用字母、数字、短横线就够了别整花活。3. 配置向导逐项拆解与参数背后的逻辑3.1 配置类型开发机与服务器的取舍配置向导第一步会让你选配置类型通常是 Development Computer、Server Computer、Dedicated Computer 三档。这个选择影响的是内存分配相关的默认参数比如 InnoDB 缓冲池大小、连接数上限。Development ComputerMySQL 和你的开发工具、浏览器、IDE 共享机器内存占用保守缓冲池默认给得小。Server Computer这台机器主要跑数据库可以给更多内存。Dedicated Computer整机专用内存几乎全给数据库。选哪档不是拍脑袋要看你机器的实际用途。开发机上选 DedicatedMySQL 会把大量内存占住你的 IDE 和浏览器就开始卡。反过来一台专门跑数据库的机器选 Development性能又浪费了。我一般开发机选 Development独立测试机选 Server这个组合比较平衡。3.2 认证方式caching_sha2_password 是默认也是趋势9.5.0 的配置向导里认证方式这一步默认就是强加密的 caching_sha2_password。这个插件比老的 mysql_native_password 安全性高密码传输和存储都更稳。但它是很多连不上问题的源头——一些老版本的客户端库、老驱动、老工具不认识这个插件连上去就报认证失败。我的处理原则是新项目、新工具链保持默认的 caching_sha2_password如果确实有老系统、老驱动必须连再单独为那个账号降级认证插件而不是全局把默认改回去。全局改默认是下策等于为了一个老客户端牺牲整个实例的安全基线。配置向导这一步会问你要不要设置 root 密码。密码策略在 9.5.0 里默认启用了强度校验太简单的密码纯数字、纯字母、长度不够会被拒绝。这不是 bug是 validate_password 组件在起作用。设一个大小写字母加数字加符号、长度 12 位以上的密码一次过。3.3 字符集与排序规则utf8mb4 的正确姿势字符集这一步答案很明确字符集选 utf8mb4排序规则选 utf8mb4_0900_ai_ci 或对应的新版规则。utf8mb4 是真正完整的 UTF-8 实现能存四字节字符emoji、生僻字都没问题。老的 utf8其实是 utf8mb3只支持三字节遇到四字节字符就报错或者截断。排序规则的选择稍微讲究一点。_ai_ci结尾表示大小写不敏感、重音不敏感适合大多数业务场景如果业务对大小写敏感比如某些标识符比较选_as_cs结尾的规则。9.5.0 默认的排序规则已经是新版规则配置向导里保持默认即可除非你有明确的跨版本兼容需求。这里补一句实操经验字符集在初始化时定下来后面改库、改表虽然可以但涉及数据转换量大时很麻烦。所以初始化阶段就选对比事后补救省事得多。3.4 Windows 服务配置开机自启与运行账户配置向导会让你决定是否把 MySQL 注册为 Windows 服务以及是否开机自启。注册为服务几乎是必选项这样数据库能随系统启动不用每次手动开命令行。开机自启看场景开发机可以设自动省得每次手动起如果机器上跑多个实例、或者你希望按需启动就设成手动。运行服务的账户默认是 Network Service大多数场景够用。如果你的数据目录放在网络位置、或者有特殊的文件权限需求才需要考虑换成指定账户。换账户时要注意给该账户授予数据目录的读写权限否则服务启动时会因为读不到数据文件而失败。3.5 应用配置与执行日志里藏着真相向导最后一步是 Apply Configuration安装器会依次执行写配置文件、初始化数据目录、注册服务、启动服务、应用安全设置。这个过程会输出一段日志很多人直接点 Finish 不看日志结果服务没起来都不知道为什么。我的习惯是盯着日志看几个关键点数据目录初始化是否成功、服务是否注册成功、服务是否启动成功、临时密码或 root 密码设置是否生效。日志里出现 warning 不一定是问题但出现 error 一定要停下来看。初始化阶段最常见的错误是数据目录非空之前装过没清干净、路径权限不足、端口被占用日志里都会有明确提示。4. 安装后验证与命令行实操4.1 服务状态确认三种方式交叉验证装完之后第一件事是确认服务真的在跑。我一般用三种方式交叉验证避免单一方式误判services.msc 图形界面找到你注册的服务名看状态是不是正在运行启动类型是不是符合预期。命令行 sc querysc query MySQL95换成你的服务名看 STATE 是不是 RUNNING。端口监听检查netstat -ano | findstr :3306看端口是否处于 LISTENING 状态PID 是否对应 mysqld 进程。三种方式结果一致才说明服务真的健康。有时候图形界面显示运行中但端口没监听那多半是服务进程起来了但初始化失败退出了这种情况要去数据目录下看错误日志。4.2 命令行登录与初始验证服务确认在跑之后用命令行客户端登录验证。打开命令提示符执行mysql -u root -p -h 127.0.0.1 -P 3306回车后输入配置时设的 root 密码。登录成功后先跑几条基础命令确认环境SELECT VERSION(); SHOW VARIABLES LIKE character_set_server; SHOW VARIABLES LIKE collation_server; SHOW DATABASES;第一条确认版本是 9.5.0第二三条确认字符集和排序规则符合预期第四条看系统库是否完整。这几条跑通说明安装基本到位。提示登录时显式指定-h 127.0.0.1而不是只写-u root -p可以避免走命名管道或共享内存连接方式带来的混淆直接验证 TCP 连接是否正常。这在排查本地能连、远程连不上类问题时特别有用。4.3 创建业务账号与权限最小化用 root 跑业务是大忌。装完验证通过后第一件正事是创建一个业务账号按最小权限原则授权。示例CREATE USER app_user% IDENTIFIED BY 一个足够复杂的密码; CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO app_user%; FLUSH PRIVILEGES;这里几个细节值得说。app_user%表示允许从任意主机连接如果只允许本机或特定网段把%换成localhost或具体 IP 段更安全。授权只给业务真正需要的增删改查不给 DDL 权限更不给 GRANT 权限。FLUSH PRIVILEGES在用了 GRANT 语句后其实不是必须的GRANT 会即时生效但写上无妨属于习惯动作。4.4 防火墙与远程访问的取舍如果只是本机开发防火墙不用动MySQL 只监听本地即可。如果需要从局域网其他机器连过来才需要放行端口。放行时注意两点一是只放行必要的来源网段不要图省事放行所有二是确认 MySQL 的 bind-address 配置允许对应网卡监听默认配置可能只绑了 127.0.0.1。我见过不少人远程连不上第一反应是关防火墙这是最糟糕的处理方式。正确顺序是先确认服务在监听哪个地址netstat看绑定的是 0.0.0.0 还是 127.0.0.1再确认防火墙规则是否放行最后确认账号的 host 部分是否允许来源 IP。三步定位比盲目关防火墙靠谱得多。5. 常见问题排查与避坑经验实录5.1 服务启动失败按这个顺序查服务注册成功但启动失败是安装阶段最高频的问题。我整理了一个排查顺序按命中率从高到低排排查项检查方法典型现象处理方式端口占用netstat -ano 查端口日志报 bind 失败换端口或结束占用进程数据目录非空查看数据目录内容日志报初始化失败清空目录或换新目录目录权限不足查看目录安全属性日志报无法写入给服务账户授予读写权限配置文件错误检查 my.ini 语法日志报未知参数修正参数名或删除错误行服务名冲突services.msc 查看注册时提示已存在换服务名或先卸载旧服务数据目录非空这条特别常见。有人装了一遍没成功直接重装但旧的数据目录没清新实例初始化时发现目录里有文件直接拒绝。正确做法是重装前确认数据目录是空的或者干脆换一个新目录。5.2 密码相关的三个坑密码这块的坑集中在三处。第一处是初始密码找不到。某些安装方式会生成临时密码写在日志里如果你没看日志就不知道临时密码是什么。解决办法是去数据目录下找错误日志搜 temporary password 关键字。第二处是密码策略拒绝简单密码前面说过validate_password 组件在起作用设复杂点就行。第三处是改了密码但客户端还拿旧密码连这种情况多半是连接池或者客户端缓存了旧凭据重启客户端或者清缓存。还有一个隐蔽的坑用 caching_sha2_password 时如果客户端版本太老会报 Authentication plugin cannot be loaded。这不是密码错是插件不兼容。处理方式是升级客户端或者为该账号单独指定 mysql_native_password 插件仅限确实无法升级客户端的场景。5.3 字符集乱码的定位思路乱码问题的根源永远是存进去的编码和读出来的编码不一致。排查时按链路走客户端连接的字符集、服务端默认字符集、库的字符集、表的字符集、列的字符集五层里任何一层不一致都可能出问题。定位方法是用SHOW VARIABLES LIKE character_set%看服务端各层设置用SHOW CREATE TABLE 表名看表和列的字符集。如果服务端是 utf8mb4 但某张表是 latin1那这张表存中文就会出问题。修复时逐层统一到 utf8mb4改表用ALTER TABLE ... CONVERT TO CHARACTER SET utf8mb4但要注意这个操作会重建表大表上要挑低峰期做。5.4 卸载重装的正确姿势装坏了要重装很多人卸载不干净导致重装继续失败。完整的清理顺序是先停服务再用安装器卸载程序然后手动检查并清理残留——数据目录、配置文件通常在 ProgramData 下、服务注册项、环境变量里的路径。这几处清干净重装才不会踩旧坑。注意清理数据目录前务必确认里面没有你要保留的库。卸载程序不会删数据目录这是保护机制但也意味着残留的数据目录会成为下次安装的障碍。养成习惯卸载前先备份确认无用再删。5.5 几个提升体验的小设置最后分享几个装完之后值得顺手做的设置。一是把 MySQL 的 bin 目录加进系统 PATH这样任何目录下都能直接敲 mysql 命令不用每次切目录。二是给常用连接在图形客户端里存好配置省得每次手输。三是定期备份装完就先跑一次逻辑备份验证备份链路通不通别等出事才发现备份脚本是坏的。我个人在实际操作中的体会是MySQL 在 Windows 上的安装本身十分钟能搞定真正花时间的是环境预检和装后验证这两头。预检做扎实安装过程基本一路绿灯装后验证做扎实后面用起来才心里有底。那些装完能用就行的做法往往在某个需要远程连接、需要改字符集、需要加账号的下午把欠的账一次性还回来。所以宁可前面多花二十分钟把端口、目录、字符集、账号这几件事一次做对。
企业数字化 ERP 产品动态
相关推荐
Oracle EBS 模块与流程全解析:从财务分销制造到跨模块协同 简介:这份Word文档面向Oracle EBS初学者、实施顾问及企业信息化人员,系统梳理了Oracle EBS各核心模块的业务流程与功能划分,帮助读者快速建立对这套企业级业务管理软件的整体认知。内容涵盖财务系统的总帐、应付、应收、固定资产与现金管理&a… · 2026/11/4 9:45:46
Flask+MySQL学生成绩管理系统:课设项目实战与二次开发指南 简介:这份资源是面向高校数据库课程设计场景的MySQL学生成绩管理系统完整课程设计报告,适合正在完成数据库课设、需要参考系统设计与实现思路的计算机相关专业学生。报告以Python Flask为后端框架、MySQL为数据库、HTMLCSSJS为前端技术,采用前… · 2026/11/4 9:45:46
C86国产化云主机技术解析与行业应用 1. C86国产化云主机的技术突破与行业价值在数字化转型浪潮中,关键行业对自主可控算力的需求正呈现爆发式增长。传统国产化云服务器长期面临性能瓶颈、生态适配困难和安全防护不足三大痛点,严重制约了在政务、金融等核心领域的规模化应用。天翼云最新发布… · 2026/11/4 9:45:46
Flink CDC在亿级数据异构同步中的实践与优化 1. 项目概述:Flink CDC在亿级数据异构同步中的实践 去年我们电商平台遇到一个棘手问题:订单数据在MySQL和Elasticsearch之间的同步延迟经常突破5秒,大促期间甚至达到30秒以上。用户下单后无法立即搜索到订单,客服系统频繁收到&quo… · 2026/11/4 10:26:47
AI Agent 知识获取管道实战:TypeScript 实现 RAG 检索增强生成 1. 为什么知识获取管道是 AI Agent 落地的第一道坎做 AI Agent 开发的人,绕不开一个尴尬的现实:模型本身很聪明,但它不知道你公司内部的业务规则、不知道你昨天刚更新的产品文档、更不知道你私有的那套数据表结构。你问它一个关于你自家系统的… · 2026/11/4 10:26:47
机器人建模与控制:从DH参数到动力学辨识的工程实践地图 简介:本资源是经典机器人学教材《机器人建模与控制》(Mark W. Spong等著,2006年Wiley出版)的完整课后习题答案,面向高校自动化、机械电子、控制工程等专业本科生及研究生,以及从事机器人算法研发与教学的工… · 2026/11/4 10:26:47
PinMe与IPFS:革新静态网站部署的技术解析 1. 项目概述:PinMe如何革新静态网站部署 作为一名长期奋战在前端开发一线的工程师,我深知静态网站部署的痛点。传统方式需要购买服务器、配置Nginx、处理SSL证书,还要担心流量超限和DDOS攻击。最近在GitHub Trending上发现的PinMe项目&#x… · 2026/11/4 10:26:47
ESP32-S3 ADC采样率极限揭秘:APB时钟与ARM总线关系 1. 为什么我要死磕这颗芯片的ADC采样率手里攥着一块ESP32-S3的开发板,想拿它做一个音频采集前端,结果一上示波器就傻眼了:标称的采样率跑不满,波形还带毛刺。这事儿搁谁身上都窝火。我最初以为是代码写得不够精简,后来… · 2026/11/4 10:26:47
VL53L1X嵌入式驱动实战:STM32 HAL下ToF测距的生产就绪方案 简介:本资源是一套面向嵌入式初学者与STM32开发者的VL53L1X飞行时间激光测距传感器驱动实践例程,聚焦TOF传感器在智能硬件、物体检测与低功耗测距场景中的落地应用。项目基于STM32CubeMX图形化配置生成初始化代码,完整封装I2C通信、寄存器配置… · 2026/11/4 10:25:46
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38