CentOS 7上安装GreatSQL 8.0.32:从环境配置到SQL查询实验全攻略
简介这是一份郑州大学计算机与人工智能学院《数据库系统原理》课程的实验报告面向郑大计算机类专业学生可作为数据库实验课程学习与报告撰写的参考资料。资源为单个docx文档大小3.69MB已有507人学习下载。内容从实验目的、实验类型到学时分配与仪器材料均有清晰呈现。报告完整覆盖数据库实验的各个环节既包括DBMS系统工作原理与逻辑组件基本表、视图、触发器、存储过程等和物理组件认识也详细记录了基于VMwareCentOS 7关闭SELinux与防火墙、安装依赖包、部署并启动万里数据库GreatSQL的具体命令及原因。实验过程部分还呈现了问题解决思路、结果分析和截图规范并对后续数据库实践具有较强参考价值适合需要完成数据库原理实验或规范撰写实验报告的同学。1. 一份能直接照着做的数据库实验报告从装环境到写查询数据库原理课第一次上机老师给的是 GreatSQL 8.0.32-25要求在 CentOS 7 虚拟机上装好再完成建库、建表、索引和交互式查询。大多数人卡在了第一步装环境装到想哭不是依赖报错就是服务起不来。这份来自某高校计算机与人工智能学院的《数据库系统原理》实验报告完整覆盖了从关闭 SELinux、安装依赖、解压二进制包、配置 systemd 服务到创建数据库、建表、填充数据、建索引、写各类查询的整条链路。SQL 语句可以直接抄安装命令能逐步复现连翻车记录都写在问题总结里。适合正在准备数据库原理实验报告的学生也适合想快速在 CentOS 上体验 GreatSQL 的开发者。2. 在 CentOS 上装好 GreatSQL先关 SELinux再解压二进制包2.1 为什么第一步是关 SELinux 和防火墙三个理由两条命令实验报告的第一步不是下载安装包而是先处理系统环境。命令只有两条但背后的取舍值得想清楚。setenforce0 sed -i /^SELINUX/cSELINUXdisabled /etc/selinux/config systemctl disable firewalld systemctl stop firewalldsetenforce0是临时关闭重启后失效sed把/etc/selinux/config里的SELINUX整行替换成disabled这是永久关闭。两条都执行才算双保险。之所以要关 SELinux原因有三第一SELinux 是强制访问控制机制数据库要执行文件读写、网络通信这类特权操作时SELinux 策略可能直接把进程拦住第二SELinux 的配置策略复杂实验中没必要为它额外排错第三它对每个进程做访问控制检查会拖慢性能。防火墙同理数据库默认监听 3306 端口防火墙规则没放行就连不上。虚拟机内部做开发测试时关掉防火墙能少很多玄学问题。提示生产环境不要照搬这个操作。SELinux 和防火墙在真实服务器上承担重要安全职责正确做法是配置对应策略只放行数据库端口而不是整体关闭。2.2 依赖包与二进制包版本号和目录规划依赖包列表很长但不要跳过任何一个。实验报告里用的是 yum 一次装齐yum install -y pkg-config perl libaio-devel numactl-devel numactl-libs net-tools openssl openssl-devel jemalloc jemalloc-devel perl-Data-Dumper perl-Digest-MD5 python2 perl-JSON perl-Test-Simple其中libaio-devel是 MySQL 异步 I/O 的依赖numactl-*负责 NUMA 内存管理openssl-devel提供 SSL 加密支持jemalloc是内存分配器perl-*系列是 MySQL 初始化脚本的运行环境。缺了任何一个后面都有可能在初始化或启动阶段才报错而且是那种看不出原因的底层错误。依赖装完下载二进制包并解压到/usr/local/cd /usr/local wget https://product.greatdb.com/GreatSQL-8.0.32-25/GreatSQL-8.0.32-25-Linux-glibc2.17-x86_64-minimal.tar.xz tar xf GreatSQL-8.0.32-25-Linux-glibc2.17-x86_64-minimal.tar.xz这里要注意两点一是选择 glibc 2.17 版本对应 CentOS 7 的默认 glibc二是选择minimal包这个版本剔除了测试套件和不常用组件安装体积小启动更快适合实验环境。解压后目录名自带版本号后面配置 systemd 和 my.cnf 都要引用这个路径。2.3 systemd 服务与 my.cnf把启停交给系统托管GreatSQL 安装不像 RPM 包会自带服务脚本需要手动写 systemd 服务文件。实验报告给出的路径是/lib/systemd/system/greatsql.service内容按常见模板补全vim /lib/systemd/system/greatsql.service[Unit] DescriptionGreatSQL Server Afternetwork.target [Service] Usermysql Groupmysql ExecStart/usr/local/GreatSQL-8.0.32-25-Linux-glibc2.17-x86_64-minimal/bin/mysqld --defaults-file/etc/my.cnf LimitNOFILE65535 [Install] WantedBymulti-user.target写完后执行systemctl daemon-reload让 systemd 识别新服务。ExecStart必须指向解压目录里实际的mysqld路径--defaults-file指定全局配置文件位置。LimitNOFILE设置文件描述符上限数据库并发连接高时会用到实验环境直接配上更稳妥。接着编辑/etc/my.cnf这是数据库全局配置入口[mysqld] datadir/var/lib/mysql socket/tmp/mysql.sock port3306 character-set-serverutf8mb4 collation-serverutf8mb4_general_ci [client] default-character-setutf8mb4datadir指向数据文件存放目录后面创建的用户和目录权限必须和这里对得上。utf8mb4字符集配置建议加上不然后面插入中文大概率出现乱码这是实验里最常见的坑之一。2.4 启动后做四件事状态、进程、端口、数据文件启动前先创建 mysql 系统用户和相关目录/sbin/groupadd mysql /sbin/useradd -g mysql mysql -d /dev/null -s /sbin/nologin mkdir /var/lib/mysql/ chown -R mysql:mysql /var/lib/mysql/mysql 用户不允许登录-s /sbin/nologin只用于运行数据库服务这是 MySQL 系数据库的标准做法。然后启动服务并验证systemctl start greatsql systemctl status greatsql ps -ef | grep mysqld ss -lntp | grep mysqld ls /var/lib/mysqlsystemctl status greatsqlsystemctl status看服务整体状态ps确认 mysqld 进程存在ss -lntp确认 3306 端口在监听ls /var/lib/mysql看初始化出来的数据文件。这四步缺一不可哪怕服务显示 active端口没监听或者数据文件没生成实际也是不可用的。注意GreatSQL 自带一些 MySQL 8.0 没有的新特性比如 MGR 单主模式选主机制、InnoDB 并行查询TPC-H 测试性能提升十几倍、事务锁从红黑树改成无锁哈希结构。实验阶段感知不明显但写报告时值得在“DBMS 系统构架”一节提一句能体现对数据库内核级特性有了解。3. 把库、表、索引一次建明白CREATE DATABASE 到 UNIQUE INDEX 的完整 SQL3.1 创建数据库库名、字符集与存储位置检查实验二要求创建一个名为 DB 的数据库并查看存储位置、文件名和大小。实验报告里先用了最简单的创建方式CREATE DATABASE DB; SHOW DATABASES; USE DB;但我建议创建时显式指定字符集避免后续中文乱码CREATE DATABASE DB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;utf8mb4是 4 字节 UTF-8 编码兼容所有 Unicode 字符utf8mb4_general_ci是排序规则MySQL 8.0 和 GreatSQL 默认都推荐这套组合。查看数据库实际存储位置和文件信息用两条命令SELECT datadir;SELECT table_schema, table_name, data_length, index_length FROM information_schema.tables WHERE table_schema DB;第一条查看数据目录所在路径第二条从系统表查各表的实际数据大小和索引大小。data_length是数据占用字节数index_length是索引占用字节数。实验报告截图要求里要体现“学会察看数据库的存储位置、文件名称、对应的文件的个数、文件的大小”这两条 SQL 正好覆盖。3.2 正式建表主键、外键、CHECK 约束与数据填充实验报告里先演示了删表再给正式建表语句。这个顺序值得学习——先跑通语句再按教材要求重新建正式的表结构CREATE TABLE STUDENTS ( Sno char(9) PRIMARY KEY, Sname char(10) NOT NULL, Sex char(2), Birthday DATE, Speciality char(20), Dno char(4) );CREATE TABLE Courses ( Cno char(5) PRIMARY KEY, Cname char(20) NOT NULL, Period int, Credit int );CREATE TABLE SC ( Sno char(9), Cno char(5), Grade int, PRIMARY KEY (Sno, Cno) );三张表的选型要点学号、课程号用char定长字符串而不是varchar因为定长字段存储定位快且学号课程号长度固定PRIMARY KEY (Sno, Cno)是联合主键保证同一条选课记录不重复NOT NULL约束加在必填字段上。这里 SC 表暂时没加外键不是忘了而是教材上外键通常在后续实验中通过ALTER TABLE追加避免建表时引用顺序产生的循环依赖。填充数据用多值 INSERT一次插多行比逐条插入效率高INSERT INTO STUDENTS VALUES (201705001, 张华, 男, 1999-12-16, 计算机, CS), (201705002, 张晓霞, 女, 1999-01-01, 软件工程, SE), (201706001, 李玉, 女, 1999-10-17, 数学, MA); INSERT INTO COURSES VALUES (CS101, 计算机科学导论, 2, 1), (CS102, 数据库系统, 4, 4), (CS103, 操作系统, 4, 3); INSERT INTO SC VALUES (201705001, CS101, 89), (201705002, CS102, 92), (201705003, CS101, 88);注意一个细节三位学生里201705003在 STUDENTS 表中并不存在但 SC 表插入了他的成绩。如果建表时就加了外键约束这条插入会直接报错。实验报告这样设计是为了先演示基本功能后续建外键时再暴露数据不一致的问题这是教学场景里的一种常见安排。3.3 索引创建与删除普通索引、唯一索引与实际选择索引部分逻辑简单但选型要理解CREATE INDEX Student_Dept ON Students (Dno); CREATE UNIQUE INDEX Course_Cno ON Courses (Cno); DROP INDEX Course_Cno ON Courses;CREATE INDEX创建普通索引用在 Dno 这个经常作为查询条件的字段CREATE UNIQUE INDEX创建唯一索引Course_Cno 建在 Cno 上但 Cno 本身已经是主键主键自带唯一索引实验里建这个唯一索引更多是为了演示语法。删除索引用DROP INDEX ... ON ...注意 GreatSQL 和 MySQL 的删除语法一致不需要指数据库名但要求当前正在使用正确的库。实际做实验时更建议在 SC 表的(Sno, Cno)联合主键以外给Sno单独建一个普通索引。因为在真实查询里最频繁的操作是“按学号查选课记录”联合主键的最左前缀规则没法单独高效命中 Sno 列。4. 交互式 SQL 查询从 SELECT * 到 WHERE 条件组合的可用模板4.1 不带 WHERE 的查询先看全量再谈过滤实验三要求在教材指定页面上完成各类查询操作核心是先建好课程相关的多个表再逐类跑查询。第一个是查看全部数据SELECT * FROM Courses;这个语句用来确认数据是否填充完整。还有一个经典写法是“查询每个学生的年龄”SELECT Sname, 2024 - YEAR(Birthday) AS Age FROM Students;这里的YEAR()是 MySQL 从日期中提取年份的函数2024 - YEAR(Birthday)直接算出年龄。要注意的是这是 MySQL/GreatSQL 的函数写法标准 SQL 里更通用的写法是EXTRACT(YEAR FROM Birthday)。实验报告要求对比标准 SQL 和 GreatSQL 的差异这里就是第一个差异点。4.2 带 WHERE 的条件查询比较、区间、集合匹配带 WHERE 的查询是重点几类写法逐一说明SELECT Tname, Sex FROM Teachers WHERE Title 讲师;字符类型字段的等值比较注意值必须用单引号。字符串是定长char(10)时MySQL 比较会自动去掉尾部空格所以讲师即使存进去时补齐了空格也能匹配上这是 MySQL 的隐式处理和 Oracle 的char比较行为不同。SELECT DISTINCT Sno FROM SC WHERE Grade 60;DISTINCT去重因为一个学生可能有多门课不及格学号会重复出现。这里的知识点是DISTINCT去重的是整行数据如果 SELECT 多列只有当所有列都相同才认为重复。SELECT Sname, Speciality FROM Students WHERE YEAR(Birthday) BETWEEN 1997 AND 1999;BETWEEN ... AND ...是闭区间包含边界。这条查询的隐含前提是数据里生日字段格式干净如果混入了1999_12_16这种下划线格式YEAR()可能返回 NULL最终结果会丢数据。实验报告里原始数据就出现过格式不一致跑之前先检查数据质量。SELECT Sname, Speciality FROM Students WHERE YEAR(Birthday) NOT BETWEEN 1997 AND 1999;取反区间注意NOT BETWEEN是整体取反而不是YEAR(Birthday) NOT ...。再往下是 IN 表达式SELECT Sno, Sname FROM Students WHERE Speciality IN (计算机, 软件工程);SELECT Sno, Sname FROM Students WHERE Speciality NOT IN (计算机, 软件工程);IN的底层实现本质上是多个等值条件的OR拼接适合集合范围不大的场景。集合元素很多时性能可能不如EXISTS关联子查询这是后续优化课程的内容实验阶段知道有这层区别即可。4.3 更新操作与标准 SQL 差异INSERT、UPDATE、DELETE 的注意事项更新操作教材里有大量实例这里的实验报告只给出了建表和填充实际更新语句需要自行完成。常见做法是补三类操作INSERT INTO SC VALUES (201706001, CS102, 95);UPDATE Students SET Dno CS WHERE Sno 201705003;DELETE FROM SC WHERE Grade 60;注意UPDATE和DELETE都强调 WHERE 条件。执行前先跑一条相同条件的SELECT确认影响范围这是避免误操作的基本习惯。标准 SQL 和 GreatSQL 在更新操作上的差异集中在几个点字符串字面量用单引号双引号在默认sql_mode下可能被当成字符串标识符表名和列名如果用了保留字需要用反引号包裹MySQL 的DELETE不支持FROM ... USING这种多表删除语法这是 PostgreSQL 的写法INSERT支持ON DUPLICATE KEY UPDATE做存在则更新、不存在则插入标准 SQL 没有这个语法。5. 实验避坑五条常见翻车记录现象与解法对照5.1 服务启动失败目录权限和用户没配对现象systemctl start greatsql执行后提示失败systemctl status greatsql显示进程退出/var/log/mysql日志报权限不足。原因解压目录和/var/lib/mysql的属主不是 mysql。二进制包解压后默认属主是 root而 systemd 服务配置了Usermysqlmysqld 启动时没权限写数据目录。解决手动归权。chown -R mysql:mysql /usr/local/GreatSQL-8.0.32-25-Linux-glibc2.17-x86_64-minimal chown -R mysql:mysql /var/lib/mysql之后再启动一次如果还失败重点看/var/lib/mysql下是否已经生成mysql.ibd和ibdata1文件没有就是初始化没完成。5.2 端口连不上防火墙关了但监听地址不对现象systemctl status显示服务正常但ss -lntp | grep mysqld无输出客户端连接报 2003 错误。原因最常见是 my.cnf 里bind-address没有配置MySQL 8.0 默认只监听 127.0.0.1。虚拟机里从宿主机或其他机器连接时自然连不上。解决在[mysqld]段加一行bind-address0.0.0.0重启后确认监听的地址变成*:3306。systemctl restart greatsql ss -lntp | grep mysqld5.3 中文字符变成问号字符集没有显式指定现象插入中文后SELECT查出来是??或???英文字符正常。原因数据库、表或连接的字符集不是 UTF-8。给表插数据时命令行客户端默认用系统字符集而数据库默认可能是latin1或utf8mb3。解决建库时显式指定utf8mb4并在 my.cnf 里配置character-set-serverutf8mb4。已经建好的库可以修改ALTER DATABASE DB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ALTER TABLE STUDENTS CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;注意第二行会重建表耗时取决于数据量实验环境数据量小可以直接跑。5.4 DROP TABLE CASCADE 报语法错误MySQL 不认识这个关键字现象执行DROP TABLE students CASCADE报语法错误像这样DROP TABLE students CASCADE;原因标准 SQL 里CASCADE和RESTRICT是合法的级联选项但 MySQL 和 GreatSQL 的DROP TABLE语法不支持这两个关键字写了直接报错。这是教材示例和实际数据库的语法差异点。解决去掉CASCADE直接执行DROP TABLE students;。如果多张表有外键依赖按依赖顺序删除或者在my.cnf里开启FOREIGN_KEY_CHECKS0后删除删完再恢复SET FOREIGN_KEY_CHECKS0; DROP TABLE students; SET FOREIGN_KEY_CHECKS1;5.5 systemctl 找不到 greatsql 服务daemon-reload 没执行现象创建完greatsql.service文件后执行systemctl start greatsql提示Unit greatsql.service not found。原因systemd 不会自动扫描新写入的服务文件需要先重载配置。解决写完.service文件后执行重载再启停。systemctl daemon-reload systemctl start greatsql这个坑几乎每个第一次手写 systemd 服务的人都会踩一次属于流程顺序问题不是配置内容问题。6. 把实验报告变成自己的运维脚本三条提高效率的习惯6.1 每次实验前跑一遍状态巡检实验做到后面服务是不是活着、端口是否正常、磁盘还剩多少这些状态直接决定 SQL 能不能跑通。我一般把巡检固化成一行命令systemctl status greatsql --no-pager ss -lntp | grep 3306 df -h /var/lib/mysql--no-pager避免 systemctl 输出分页卡住交互查看端口和服务状态一次完成df -h防止数据文件把磁盘写满导致启动失败。6.2 把常用建表 SQL 存成模板文件实验三开始要建六张带外键的表每次从教材手敲一遍太容易错。先把稳定版本存成/root/schema.sql需要时就地执行mysql -u root -p /root/schema.sql写模板时给每条语句加注释说明字段含义后期查问题不用翻教材。6.3 备份优先实验前快照翻车后恢复手动实验免不了删错表、改错数据。血泪经验是每次开始新实验前先打一次虚拟机快照。快照恢复后数据库回到实验开始前的状态比逐条回滚 SQL 快得多也是做嵌套实验时最有效的后悔药。从那以后我每搭一套数据库实验环境都会在改 any 配置前强制走一遍“快照 巡检 schema 备份”的组合流程这个习惯让我少踩了很多重复的坑。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

YOLO数据集标注格式详解与小样本训练实战

YOLO数据集标注格式详解与小样本训练实战

简介:本资源是一套专为YOLO系列目标检测算法(含YOLOv5/v7/v8/v9/v10/v11)定制的轻量级行人与车辆双类别训练数据集,面向计算机视觉初学者、算法工程师及课程实验开发者,解决小规模场景下快速验证模型结构、调试标签格式…

2026/10/10 20:57:51 阅读更多 →
让AI Agent拥有本地永久记忆:TaoToken统一通道下的零费用中文友好方案

让AI Agent拥有本地永久记忆:TaoToken统一通道下的零费用中文友好方案

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

2026/10/9 18:27:22 阅读更多 →
AXI通道协议信号解析:五大通道握手规则与实战避坑指南

AXI通道协议信号解析:五大通道握手规则与实战避坑指南

1. AXI通道协议信号解析的核心价值与整体设计思路第一次接触AXI总线协议的人,大多会被它那一大堆信号名搞得头晕。AW、AR、W、R、B五个通道,每个通道又有VALID、READY、LAST这些握手信号,再加上ID、LEN、SIZE、BURST这些控制字段,…

2026/10/10 20:57:51 阅读更多 →

最新新闻

Rust Web框架实测:Salvo与axum对比,24小时快速开发CRUD接口

Rust Web框架实测:Salvo与axum对比,24小时快速开发CRUD接口

如果你最近在 Rust 里挑 Web 框架,应该会经历一段很具体的纠结期:axum 文档最全、生态最大,actix-web 性能名声在外,Rocket 的宏写法接近魔法。我原来一直偏向 axum,直到上周接了个小需求,要三天内把一个内…

2026/10/10 20:57:40 阅读更多 →
Secure Boot状态不一致:固件启用但Linux显示禁用的原理与诊断

Secure Boot状态不一致:固件启用但Linux显示禁用的原理与诊断

1. 现象本身不是Bug,而是两套独立状态系统的自然结果你刚进BIOS/UEFI设置界面,一眼就看到Secure Boot选项旁边清清楚楚标着「已启用」——绿色对勾、高亮文字、甚至还有个锁形图标。你松了口气,重启进Linux系统,随手敲下mokutil -…

2026/10/10 20:57:40 阅读更多 →
学习型索引:用轻量神经网络替代B-Tree的原理与实践

学习型索引:用轻量神经网络替代B-Tree的原理与实践

1. 项目概述:当索引本身开始“学习”数据分布你有没有遇到过这样的场景:数据库查一个范围查询,明明只想要100条记录,B-Tree却要从根节点一路遍历到叶子页,反复做磁盘随机IO,最后发现90%的页读进来只是用来跳…

2026/10/10 20:57:40 阅读更多 →
Python实现配电网经济性与可靠性双目标协同优化规划

Python实现配电网经济性与可靠性双目标协同优化规划

搞配电网规划的朋友,应该都体会过经济性和可靠性"打架"的感觉。传统工作流里,这两个维度往往是串行处理:先按年费用最小去定线路和容量,再用N-1准则或可靠性导则去校核,不够就加设备、加大截面,来…

2026/10/10 20:57:40 阅读更多 →
机器学习课程设计:Python垃圾分类系统源码解析与实战避坑指南

机器学习课程设计:Python垃圾分类系统源码解析与实战避坑指南

简介:这份Python垃圾分类系统课程设计源码包,面向机器学习课程设计学生及垃圾分类入门开发者,提供一套从模型训练到界面演示的完整个人大作业方案。项目基于TensorFlow 2.3,核心包括MobileNet模型训练脚本、窗口端垃圾分类测试程序…

2026/10/10 20:57:40 阅读更多 →
共聚焦显微镜与激光共聚焦有什么区别?选型与实操全解析

共聚焦显微镜与激光共聚焦有什么区别?选型与实操全解析

直接抛一个问题:你实验室里那台写着“共聚焦显微镜”的仪器,和你师弟论文里写的“激光共聚焦显微镜”,到底是不是同一个东西?如果只是名称长了三个字,为什么采购单上价格能差出一倍?很多刚接触显微成像的同…

2026/10/10 20:56:40 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →