SQL 2000.zip 数据迁移实战:从老库文件到现代SQL Server
简介本资源为微软SQL Server 2000SQL2K完整安装包及配套技术资料合集面向数据库初学者、运维工程师与遗留系统维护人员助力理解经典企业级RDBMS的核心架构与实操要点。压缩包为ZIP格式大小400.83MB涵盖SQL Server 2000标准版安装程序、企业管理器、查询分析器、DTS数据转换工具、Reporting Services报表组件及基础配置文档等关键内容其中可执行文件与系统服务模块支撑本地部署配置类文件便于环境调优与权限实践。已有141人学习下载适用于搭建教学实验环境、复现老系统运行逻辑、对比学习新版SQL Server演进路径。读者可直接部署运行结合其Transact-SQL语法支持、存储过程/触发器开发、完整备份恢复流程、OLAP分析服务及XML数据交互等典型能力开展数据库管理、安全策略配置与性能调优等全流程实践。1. SQL 2000.zip不是安装包而是历史数据迁移的「时间胶囊」与实操起点你双击打开SQL 2000.zip发现里面没有 setup.exe没有 GUI 安装向导甚至没有一个.msi文件——只有一堆.bak、.mdf、.ldf和零散的.sql脚本。别慌这不是下载错了也不是病毒伪装。这个压缩包大概率是某位老系统维护者在二十年前导出的 SQL Server 2000 数据库快照它封存了原始数据库结构、用户表数据、存储过程逻辑甚至可能包含当时特有的排序规则如SQL_Latin1_General_CP1_CI_AS和text/ntext字段类型。今天你要做的不是“重装 SQL 2000”而是把它从 2003 年的黑匣子里安全解封、结构映射、数据校验并最终迁移到现代 SQL Server2019/2022或跨平台替代方案如 PostgreSQL 兼容层。适合对象很明确接手遗留系统改造的 DBA、做政务/金融老系统升级的后端工程师、高校实验室复现古早业务逻辑的研究者。它不解决“怎么学 SQL”而直击“怎么救活一份不能丢、但跑不起来的数据资产”。2. 解压即止步先搞清 ZIP 里到底藏了什么类型的 SQL 2000 数据资产SQL 2000.zip不是标准化分发包而是人工归档产物。它的内容结构决定后续所有操作路径。常见组合有三类必须先识别再行动2.1 类型一完整数据库文件.mdf .ldf——最接近“原盘镜像”这是最理想也最危险的类型。典型结构如下SQL 2000.zip ├── Northwind_Data.mdf # 主数据文件含表、索引、约束 ├── Northwind_Log.ldf # 事务日志文件 └── README.txt # 可能注明数据库名、兼容级别、排序规则关键判断依据文件扩展名是否为.mdf/.ldf文件大小是否 1MB空库通常也超几百 KB是否有配套的sp_helpdb输出截图常被截图存为.jpg放进 ZIP。2.2 类型二备份文件.bak——需依赖 SQL Server 2000 实例还原结构更紧凑但依赖性强SQL 2000.zip ├── ERP_System_20030415.bak # 全库备份含事务日志链 └── backup_header.txt # 用 RESTORE HEADERONLY 导出的元信息注意.bak文件无法直接读取内容必须通过RESTORE FILELISTONLY查看逻辑文件名如ERP_Data、ERP_Log否则后续RESTORE DATABASE会因逻辑名不匹配失败。2.3 类型三脚本集合.sql——最灵活但最易丢逻辑这是“人肉导出”的结果常见于无权限访问物理文件的场景SQL 2000.zip ├── 01_CreateDB.sql # CREATE DATABASE 语句含 COLLATE 指定 ├── 02_CreateTables.sql # 带 IDENTITY、DEFAULT 的建表语句 ├── 03_InsertData.sql # 大量 INSERT INTO ... SELECT * FROM OPENROWSET(...) ├── 04_StoredProcs.sql # 包含 SET QUOTED_IDENTIFIER OFF 等旧语法 └── schema_notes.md # 手写说明“客户表中 phone 字段实际存的是区号号码无分隔符”血泪经验03_InsertData.sql里若出现INSERT INTO t1 SELECT * FROM t2必须确认两表字段顺序、NULL 属性、数据类型是否严格一致——SQL 2000 不校验列名匹配错一位就全表乱码。3. 在现代 Windows 上启动 SQL Server 2000 兼容环境不装原版用容器化沙箱你绝不能在生产机上安装 SQL Server 2000已停止支持超 15 年存在未修复远程代码执行漏洞。正确做法是构建隔离、可销毁、可复现的兼容环境。主流方案只有两个我们选更可控的 Docker 方案3.1 用 mcr.microsoft.com/mssql/server:2017-latest 模拟 SQL 2000 兼容模式SQL Server 2017 支持将数据库兼容级别设为 80对应 SQL 2000这是官方支持的降级路径# 启动一个 SQL Server 2017 容器暴露端口 1433 docker run -e ACCEPT_EULAY -e SA_PASSWORDYourStrongPassw0rd \ -p 1433:1433 --name sql2000-sandbox \ -d mcr.microsoft.com/mssql/server:2017-latest-- 进入容器后创建新数据库并强制设为兼容级别 80 CREATE DATABASE LegacyDB ON ( NAME LegacyDB_Data, FILENAME /var/opt/mssql/data/LegacyDB.mdf ), ( NAME LegacyDB_Log, FILENAME /var/opt/mssql/data/LegacyDB.ldf ) GO ALTER DATABASE LegacyDB SET COMPATIBILITY_LEVEL 80; GO参数说明COMPATIBILITY_LEVEL 80启用 SQL 2000 语法解析器如允许*左外连接写法、禁用新特性如OFFSET/FETCH、保留text字段行为。但注意它不恢复 SQL 2000 的排序规则行为SQL_Latin1_General_CP1_CI_AS在 2017 中仍是有效值但比较逻辑已优化需额外验证。3.2 若必须运行原生 SQL 2000如调试特定 bug用 Hyper-V 虚拟机 Windows XP SP3这是最后手段仅限离线分析下载微软官方提供的 Windows XP SP3 VHD 镜像 合法测试用途在 Hyper-V 中新建虚拟机挂载该 VHD启用 Integration Services手动安装 SQL Server 2000 Developer Edition需单独获取安装介质微软官网已下架但 ISO 哈希值SHA1: 8a1b9e2c...可验证完整性关键配置安装时选择“使用本地系统账户”而非网络服务禁用所有远程协议TCP/IP、Named Pipes仅留 Shared Memory提示虚拟机网络设为“仅主机网络”彻底断开外网。SQL 2000 默认 SA 密码为空首次登录后立即用osql -E -S .\SQLEXPRESS -Q ALTER LOGIN sa WITH PASSWORD NewPssw0rd123修改。4. 三类 ZIP 内容的落地操作从解压到可查询的最小闭环根据第 2 章识别出的 ZIP 类型执行对应操作。每一步都附带验证命令确保中间状态可审计。4.1 对于 .mdf .ldf 文件附加Attach而非还原假设解压后得到OrdersDB_Data.mdf和OrdersDB_Log.ldf-- 1. 先检查文件是否被其他进程占用常见于双击用记事本打开过 .mdf EXEC sp_configure show advanced options, 1; RECONFIGURE; EXEC sp_configure xp_cmdshell, 1; RECONFIGURE; EXEC xp_cmdshell handle.exe -p sqlservr.exe OrdersDB_Data.mdf; -- 若返回非空重启 SQL Server 服务 -- 2. 附加数据库关键指定正确的逻辑文件名 CREATE DATABASE OrdersDB ON ( FILENAME C:\temp\OrdersDB_Data.mdf ), ( FILENAME C:\temp\OrdersDB_Log.ldf ) FOR ATTACH_REBUILD_LOG; -- 自动重建日志避免日志损坏 GO -- 3. 验证检查是否成功且兼容级别正确 SELECT name, compatibility_level, state_desc FROM sys.databases WHERE name OrdersDB; -- 预期输出OrdersDB | 80 | ONLINE逻辑说明FOR ATTACH_REBUILD_LOG是救命参数——SQL 2000 的.ldf在跨平台移动后极易损坏此选项丢弃原日志用.mdf中的最后检查点重建代价是丢失最后一次 checkpoint 后的事务但换来可用性。4.2 对于 .bak 文件用现代 SQL Server 还原但绕过版本限制SQL Server 2019 原生不支持直接还原 SQL 2000.bak需中间跳转# 步骤1在 SQL Server 2008 R2 实例仍支持 SQL 2000 备份格式上还原 RESTORE DATABASE TempDB FROM DISK C:\temp\Legacy.bak WITH MOVE Legacy_Data TO C:\data\TempDB.mdf, MOVE Legacy_Log TO C:\data\TempDB.ldf, REPLACE, RECOVERY; GO # 步骤2在 2008 R2 上将 TempDB 备份为 2008 格式 BACKUP DATABASE TempDB TO DISK C:\temp\TempDB_2008.bak; GO # 步骤3在 SQL Server 2019 上还原 2008 格式备份完全支持 RESTORE DATABASE FinalDB FROM DISK C:\temp\TempDB_2008.bak WITH MOVE TempDB TO D:\mssql\data\FinalDB.mdf, MOVE TempDB_log TO D:\mssql\data\FinalDB.ldf, REPLACE, RECOVERY; GO参数说明MOVE子句中的逻辑文件名必须与RESTORE FILELISTONLY FROM DISK Legacy.bak输出的第一列LogicalName严格一致大小写敏感。漏掉这一步还原会报错 “Logical file xxx is not part of database yyy”。4.3 对于 .sql 脚本分阶段执行用 TRY...CATCH 捕获隐性失败03_InsertData.sql常含百万级INSERT直接执行易超时或锁表。改用批处理-- 创建临时表承载原始数据避免阻塞主表 SELECT TOP 0 * INTO dbo.Customers_Temp FROM dbo.Customers; GO -- 分批插入每 1000 行提交一次 DECLARE BatchSize INT 1000; DECLARE Offset INT 0; WHILE (11) BEGIN BEGIN TRY INSERT INTO dbo.Customers_Temp SELECT * FROM OPENROWSET(SQLNCLI, Server.;Trusted_Connectionyes;, SELECT * FROM Customers_Source WHERE id BETWEEN CAST(Offset1 AS VARCHAR) AND CAST(OffsetBatchSize AS VARCHAR)); SET Offset Offset BatchSize; IF ROWCOUNT BatchSize BREAK; -- 最后一批不足 1000 行退出 END TRY BEGIN CATCH PRINT Error at offset CAST(Offset AS VARCHAR) : ERROR_MESSAGE(); BREAK; END CATCH END GO为什么不用 BULK INSERT因为BULK INSERT要求源文件在数据库服务器本地而你的.sql脚本很可能来自外部网络且OPENROWSET可直接读取 Excel/CSV需安装 ACE OLEDB 驱动灵活性更高。5. 避坑SQL 2000 迁移中 4 个高频翻车点与后悔药这些不是理论风险是我在三个不同行业项目里亲手填过的坑按发生频率排序5.1 现象附加.mdf后数据库状态为RECOVERY_PENDING且SELECT * FROM sys.databases显示state_desc RECOVERY_PENDING→原因SQL Server 尝试回滚未完成事务时发现日志文件.ldf末尾损坏或版本不匹配。SQL 2000 的日志头结构与现代引擎解析逻辑存在微小差异。→解决放弃.ldf强制用.mdf重建日志ALTER DATABASE [YourDB] SET EMERGENCY; DBCC CHECKDB ([YourDB], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS; ALTER DATABASE [YourDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DBCC CHECKDB ([YourDB], REPAIR_ALLOW_DATA_LOSS); ALTER DATABASE [YourDB] SET MULTI_USER;警告REPAIR_ALLOW_DATA_LOSS可能删除损坏页上的行执行前务必备份.mdf原文件。5.2 现象执行04_StoredProcs.sql时CREATE PROCEDURE报错 “Incorrect syntax near RETURNS”→原因SQL 2000 不支持RETURNS TABLE函数但脚本里混入了 SQL 2005 语法可能是后期维护者误改。→解决用正则批量替换查找CREATE FUNCTION \[.*?\] RETURNS TABLE→ 替换为CREATE VIEW \[xxx\] AS查找ALTER PROCEDURE→ 替换为IF OBJECT_ID(xxx) IS NOT NULL DROP PROCEDURE xxx; CREATE PROCEDURE xxx工具推荐 VS Code 的多行正则(?s)CREATE FUNCTION (.*?) RETURNS TABLE(.*?);5.3 现象text字段数据在查询结果中显示为(binary data)或乱码如0x48656C6C6F→原因客户端工具如 SSMS 18默认将text视为二进制需显式转换。→解决在查询中强制CASTSELECT CAST(notes AS VARCHAR(MAX)) AS notes_text FROM customer_orders; -- 或全局设置SSMS → 工具 → 选项 → 查询结果 → SQL Server → 文本 → 勾选 “将大容量文本列作为文本显示”5.4 现象迁移后中文搜索失效WHERE name LIKE %张%返回空但SELECT name确实显示“张三”→原因SQL 2000 默认排序规则SQL_Latin1_General_CP1_CI_AS对 Unicode 支持弱而现代 SQL Server 默认用Latin1_General_100_CI_AS_SC_UTF8字符比较逻辑不同。→解决在查询中指定排序规则SELECT * FROM customers WHERE name COLLATE SQL_Latin1_General_CP1_CI_AS LIKE %张%; -- 长期方案修改列排序规则需重建索引 ALTER TABLE customers ALTER COLUMN name NVARCHAR(100) COLLATE SQL_Latin1_General_CP1_CI_AS;6. 验证迁移质量用三组 SQL 脚本做「数据一致性体检」做完迁移别急着交付。我给自己定的铁律是不跑通这三组验证不算完工。它们覆盖结构、数据、逻辑三层且全部可自动化。6.1 结构层验证比对表定义哈希值防 DDL 意外变更在源库SQL 2000 环境和目标库现代 SQL Server分别执行-- 生成每个表的 DDL 哈希忽略空格、换行、注释 SELECT t.name AS table_name, CHECKSUM_AGG(CHECKSUM( c.name | TYPE_NAME(c.user_type_id) | CAST(c.max_length AS VARCHAR) | CAST(c.precision AS VARCHAR) | CAST(c.scale AS VARCHAR) | CASE WHEN c.is_nullable 1 THEN 1 ELSE 0 END )) AS ddl_hash FROM sys.tables t JOIN sys.columns c ON t.object_id c.object_id GROUP BY t.name ORDER BY t.name;执行方式将两库结果导出为 CSV用fcWindows或diffLinux比对ddl_hash列。若某表哈希不同说明字段类型、长度、可空性有差异需回溯脚本。6.2 数据层验证抽样校验行数 关键字段 CRC32对大表10 万行不全量比对用 CRC32 抽样-- 在源库和目标库分别执行需提前创建 dbo.CRC32 函数 SELECT COUNT(*) AS row_count, dbo.CRC32(CONVERT(VARCHAR(MAX), (SELECT TOP 1000 id, name, amount FROM orders ORDER BY id FOR XML RAW, ROOT))) AS sample_crc FROM orders;为什么用 TOP 1000 XMLFOR XML RAW将 1000 行转为确定性字符串CRC32计算其哈希。若两库sample_crc相同99.9% 概率数据一致不同则立即排查。6.3 逻辑层验证用「黄金查询集」回归测试整理 5~10 个业务核心查询如“近 30 天销售额汇总”、“客户复购率计算”保存为golden_queries.sql-- golden_queries.sql 第 1 条 SELECT YEAR(order_date) AS y, MONTH(order_date) AS m, SUM(amount) AS total_sales FROM orders WHERE order_date DATEADD(MONTH, -1, GETDATE()) GROUP BY YEAR(order_date), MONTH(order_date) ORDER BY y, m;执行脚本PowerShell$queries Get-Content golden_queries.sql -Raw $sourceResult Invoke-Sqlcmd -ServerInstance SQL2000-VM -Database LegacyDB -Query $queries $targetResult Invoke-Sqlcmd -ServerInstance SQL2019-PROD -Database MigratedDB -Query $queries if ((Compare-Object $sourceResult $targetResult) -eq $null) { Write-Host ✅ 黄金查询全部通过 } else { Write-Host ❌ 发现差异请检查 }最后说句实在话处理SQL 2000.zip没有银弹每一次解压都是和二十年前的自己对话。我养成了一个习惯——每次成功附加数据库后立刻用SELECT GETDATE(), VERSION, DB_NAME()截图存档文件名带上日期和哈希。不是为了留痕而是提醒自己技术会过时但数据不会。只要结构清晰、校验扎实、步骤可逆那些封存在 ZIP 里的业务逻辑永远有重见天日的一天。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

用pstack诊断Claude本地服务卡死问题

用pstack诊断Claude本地服务卡死问题

1. “pstack-claude”不是工具名,而是开发者在调试现场随手记下的诊断线索 你第一次在终端里敲下 pstack ,看到一串堆栈帧从进程PID里倾泻而出,而旁边日志里正滚动着 codex endpoint /responses 的报错——那一刻,“pstack-c…

2026/10/14 6:15:27 阅读更多 →
OpenAPI与Swagger接口描述文件实战:从设计到落地

OpenAPI与Swagger接口描述文件实战:从设计到落地

1. 接口描述文件到底在解决什么问题前后端联调的时候,最怕听到的一句话就是“你这接口怎么又变了”。上周还能跑通的请求,这周前端一调就报 400,翻聊天记录才发现后端悄悄把字段名从userName改成了username,参数位置从 query 挪到…

2026/10/12 2:00:45 阅读更多 →
Agent-Reach:终端原生的代码知识导航CLI工具

Agent-Reach:终端原生的代码知识导航CLI工具

1. 项目概述:一个被误读却极具实操价值的CLI工具“Agent-Reach”这个名字乍一听像某个AI智能体平台的商业化产品,或是某家大厂刚发布的Agent编排框架——但实际点开GitHub仓库(https://github.com/shihabal3amri/diplay)&#xff…

2026/10/16 16:20:42 阅读更多 →

最新新闻

Flink流处理实战:状态管理、时间语义与生产调优指南

Flink流处理实战:状态管理、时间语义与生产调优指南

1. 这不是“又一篇Flink教程”,而是一份流处理老兵的实战手记Flink流处理框架总结——这七个字背后,藏着过去五年里我参与过的12个实时数仓项目、7套IoT设备告警系统、3个金融风控实时决策链路的真实沉淀。它不是教科书式的概念罗列,也不是AP…

2026/10/17 17:25:23 阅读更多 →
CTF Web题实战:JWT弱密钥与zip软链接攻击组合getshell

CTF Web题实战:JWT弱密钥与zip软链接攻击组合getshell

某 CTF 收集平台上有一道 Web 题,出题方我姑且隐去名字,年份标注 2019,题号是 Web3。第一次打的时候,我在上面卡了一个多小时,不是题目有多难,而是两个知识点我都有印象,但始终没串起来&#xf…

2026/10/17 17:25:23 阅读更多 →
随机森林模式识别系统设计与MATLAB实现——银行贷款审批三分类

随机森林模式识别系统设计与MATLAB实现——银行贷款审批三分类

简介:随机森林算法在模式识别与分类预测中的应用资料,立足银行贷款审批场景,完整讲解系统设计思路与实现流程,涵盖随机森林基本思想、特征提取、ID3决策树构建、集成投票与准确率评估。面向机器学习初学者、高校课程设计及毕业设计…

2026/10/17 17:25:23 阅读更多 →
Claude Code安装教程:用cc-switch管理API Key与Node.js环境

Claude Code安装教程:用cc-switch管理API Key与Node.js环境

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

2026/10/17 17:25:23 阅读更多 →
t-SNE本质是概率结构显影,不是传统降维

t-SNE本质是概率结构显影,不是传统降维

1. 为什么t-SNE不是“降维工具”,而是“高维结构显影液”很多人第一次接触t-SNE,是在某篇论文的图注里看到“t-SNE visualization of high-dimensional features”,然后顺手把它当成PCA的替代品——毕竟都是把100维的数据压到2D平面上画个散点…

2026/10/17 17:24:23 阅读更多 →
Flutter组件适配鸿蒙:构建端侧智能Agent与设备联动中枢

Flutter组件适配鸿蒙:构建端侧智能Agent与设备联动中枢

1. 项目背景与核心思路拆解如果你正在做跨端智能家居,手里已经有一套用 Flutter 写的 jarvis 组件,想把它搬到鸿蒙 HarmonyOS 上继续发光发热,并顺手把端侧智能 Agent 的指令分发和设备联动中枢搭起来,那我这套适配流程应该能帮你…

2026/10/17 17:24:23 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04: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/16 21:54:38 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →