MySQL零基础入门:从安装到增删改查实战教程
写这篇教程的初衷很简单——我见过太多人一上来就啃官方文档结果被术语劝退也见过不少人背了一堆命令却连数据库都没装好。MySQL作为最流行的开源关系型数据库它其实没有传说中那么难难的是没人告诉你第一步该干嘛。这篇是“超详细零基础”系列的第一篇我会从数据库是什么讲起把安装、连接、建库建表、增删改查全部过一遍全程用大白话实操命令不堆概念。学完之后你至少能自己搭一个本地数据库跑通最基本的增删改查为后面的索引、事务、表连接打好底子。1. 为什么是MySQL数据库选型背后的逻辑1.1 数据库到底是个什么东西很多人听到“数据库”三个字就发怵其实可以把它想象成一个超级智能的Excel表格。Excel里我们会有多个工作表每个表里有行有列数据库里也有类似的结构但相比之下它更强的地方在于能同时被多个程序安全地读写能按条件快速筛选出海量数据里的某几条还能保证数据不丢、不乱。举个例子你做一个小商城系统用户注册的信息、商品列表、订单数据如果全部写在内存里程序一重启就没了如果写在普通文本文件里数据一多就没法查而且两个人同时修改就会互相覆盖。这时候MySQL就能派上用场它把数据持久化到磁盘提供结构化查询语言SQL让你精确地增、删、改、查还通过事务机制保证数据操作的可靠性。MySQL属于关系型数据库所谓“关系”就是指数据可以拆分成多张表表与表之间用字段比如用户ID关联起来。这种设计几十年来被证明是处理业务数据最稳妥、最通用的模型之一。你只要抓住一个核心思想任何数据在MySQL里最终都可以被拆成二维表——有固定列名行就是一条记录。1.2 为什么MySQL是绝大多数人的第一选择市面上数据库不少但MySQL在入门级和学习曲线上的优势是碾压性的。一是免费且开源个人学习和中小企业部署完全不用考虑授权费用社区活跃遇到问题一搜一大把答案。二是超级通用几乎所有编程语言都有对应的驱动从Python、Java、PHP到Go连接MySQL都是标配操作。三是生态成熟官方工具、第三方图形界面管理工具比如后续要说的Navicat、DBeaver都非常完善新手不需要在命令行里死磕。四是性能足够强一台普通服务器撑起几万QPS的小型业务完全没问题即使是大型互联网公司MySQL也往往是业务数据的核心存储之一只是后面做了分库分表或读写分离的架构延伸。还有一个常被忽略的点MySQL的语法在所有关系型数据库里算是最“友好”的。对比一下Oracle或者SQL ServerMySQL的关键字更直观错误提示更贴近人类语言安装包也更小巧。对零基础的人来说这一点直接决定了你能不能在半小内跑通第一个实例。1.3 学完这篇你能做什么如果你是个完全没接触过数据库的新手看完并实践完这篇你会掌握这些硬技能在自己的电脑上成功装好MySQL服务并把它跑起来。会用命令行和图形化工具连接本地数据库。能看懂一张表的结构区分字段、数据类型、主键。能自己创建数据库、创建表往表里插入数据。会用SELECT做基础查询用WHERE做条件过滤用UPDATE和DELETE修改和删除数据。更重要的是你能建立对“数据存储”的正确直觉。后面不管学后端框架还是数据分析都知道数据是怎么落地的。这篇不涉及高深的索引优化和事务隔离级别那些是这个系列后续篇的内容。先把基础打牢比什么都强。2. 安装MySQL不同系统的完整步骤2.1 Windows下安装与初始配置Windows环境通常有两种主流安装方式一种是下载官方安装包选Developer Default模式一步步点过去另一种是用免安装的ZIP包手动配置。我个人更建议新手选第一种省心而且安装器会帮你把MySQL服务注册成Windows系统服务开机就能自动启动。具体步骤如下打开MySQL官方下载页面选择MySQL Community Server挑一个最新稳定版不要选预览版、不要选旧版本。下载下来的安装包通常是.msi格式双击运行协议勾选同意然后选择Setup Type。默认的Developer Default会安装很多东西包括MySQL Workbench如果你硬盘不大用Server only就够后续的图形工具可以自己单独装。安装到Configuration步骤时会让你选Server Configuration。一般来说初学者直接选Standalone MySQL Server即可Development Machine的配置预设也够用。端口保持默认的3306不要改除非你已经预感到会被占用。设置认证方式时有两个选项Use Strong Password Encryption强密码加密和Use Legacy Authentication旧版认证。如果你只用来学习选第一个就行但如果你电脑里装了老版本的编程语言驱动或旧框架建议选第二个否则后面连接时会报认证插件错误。设置root用户密码。这一步极其重要这个root相当于数据库的最高管理员密码必须记牢。千万不要用“123456”这种弱口令也别跟系统登录密码一样因为后面你会拿它练手各种连接操作一旦泄露你的本地数据就全暴露了。后面会进入Windows Service配置建议勾选Start the MySQL Server at System Startup这样每次开机服务自动运行省去手动启动的麻烦。点击Execute执行配置最后安装完成并结束向导。装完之后你可以在开始菜单里找到MySQL Command Line Client或者打开终端输入mysql -u root -p回车后输入刚才设置的密码看到mysql这样的提示符就说明安装成功了。2.2 Linux环境下安装与常见坑Linux安装MySQL最简单的方式就是通过包管理器直接装。以最常见的Debian/Ubuntu系为例# 先更新索引 sudo apt update # 安装MySQL服务端和客户端 sudo apt install mysql-server -y装完之后服务一般会自动启动。你可以用下面这条命令检查状态sudo systemctl status mysql如果看到active (running)说明服务正常。但注意Ubuntu装好的MySQL默认root用户是auth_socket认证也就是说直接用Linux系统root身份就能进MySQL不需要密码。这对新手很容易造成困惑明明没设密码怎么有时候能进有时候不能进正确做法是你先以系统root身份进入MySQL设置一个密码。执行sudo mysql进入MySQL后执行ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你自己的新密码; FLUSH PRIVILEGES;退出后再用mysql -u root -p登录就会提示你输密码了。这一步做完你才算完成Linux下的初始化。CentOS/RHEL系则略有不同默认包管理器是yum/dnf。官方源里面带的可能是MariaDB而不是MySQL想装真MySQL需要先配置官方Yum仓库命令稍微繁琐一点。不过对零基础读者我更建议直接在电脑上装个虚拟环境或者用Windows别在这里卡住太久。操作系统选型本身不是学习MySQL的重点把精力放在SQL语句上收获会更大。2.3 macOS安装与注意事项macOS用户我推荐用Homebrew安装这是最省事的方案# 安装MySQL brew install mysql # 启动服务注意不是brew start brew services start mysqlHomebrew安装的MySQL默认root账号也是无需密码的。你直接运行mysql -u root进入后用上面提到的ALTER USER命令设置密码即可。另外macOS上还要留意一个坑安装过程中如果报“Cant connect to local MySQL server through socket”多半是MySQL服务没起来先去检查brew services list如果状态只有none就说明没启动成功重新执行start命令或者查看/tmp/mysql.sock文件是否存在。如果文件存在但依然连不上检查一下/usr/local/var/mysql目录下有没有权限问题用sudo chown -R $(whoami) /usr/local/var/mysql修复一下就行。3. 第一次连上数据库客户端工具与基本认识3.1 进入MySQL命令行的正确姿势安装完成后最经典的进入方式就是用自带的命令行客户端。Windows下搜索“MySQL Command Line Client”打开后输入root密码直接就进入MySQL了。或者在任意终端里输入mysql -h 127.0.0.1 -P 3306 -u root -p这条命令的意思是连接本机127.0.0.1的3306端口用户名是root-p表示后面要输入密码。输入密码时终端上不会显示任何字符不要以为卡住了这是正常的。回车之后看到Welcome to the MySQL monitor.和mysql提示符就说明连上了。这里想多说一句很多新手卡在这一步是因为输完-p直接回车MySQL会提示Enter password:这个交互式输入是对的。但如果你用的是-p123456这种写法密码直接跟在-p后面会出现在命令行历史记录里存在安全隐患不建议用。进入MySQL后可以先尝试三条基础命令-- 查看当前版本 SELECT VERSION(); -- 查看所有数据库列表 SHOW DATABASES; -- 查看当前时间 SELECT NOW();其中SHOW DATABASES结果里通常会看到information_schema、mysql、performance_schema、sys这四五个库这些是系统自带的千万不要手动去删或改它们负责存储MySQL的元数据、权限信息和性能分析数据。你以后自己建的库都会额外出现在这个列表里。3.2 用图形化工具连接新手友好但别过度依赖命令行虽然专业但对零基础的人来说看着黑乎乎的窗口确实容易打退堂鼓。因此我建议你装一个图形化管理工具。市面上常见的有MySQL Workbench官方免费工具功能最全还有ER图建模、性能诊断缺点是比较笨重。Navicat界面漂亮、操作顺手很多人职业生涯的第一个数据库工具就是它缺点是收费。DBeaver免费开源基于Java支持几乎所有数据库跨平台插件多我个人推荐新手从DBeaver开始。安装DBeaver后新建连接填写主机为127.0.0.1端口3306用户名root密码填你设置的密码点击测试连接看到Connection succeeded就表示成功了。连接成功后你可以在左侧看到刚才命令行里SHOW DATABASES列出的那些库又能用图形界面浏览表数据、写SQL、查看结果学习曲线会缓和很多。图形工具的本质其实还是帮你执行SQL底层没有任何魔法。所以我建议你用图形工具做“看”的动作比如看数据、看表结构但“写”的练习尽量在命令行或SQL编辑器里手打。这个系列讲的每一个命令建议你在命令行里敲一遍再在工具里敲一遍手感和理解完全不一样。3.3 看懂MySQL的目录结构和系统库连上MySQL后你看到的那些系统库很多人搞不清楚它们有什么用。简单说mysql库核心权限库用户、密码哈希、访问权限全在这里面。你创建的用户就是在mysql.user表里加了一条记录。information_schema数据库的“元数据库”表里存的不是业务数据而是关于其他数据库的信息比如有哪些表、哪些字段、哪个字段是主键。performance_schema收集MySQL运行时的性能数据比如锁等待、IO事件、SQL执行统计。初学者可以先忽略后续学性能优化时再回来看它。sys一个封装了performance_schema的视图库提供一堆方便查询的视图比如查看当前有哪些慢SQL。这些库平时你只读就好。真正操作时你会在自己创建的数据库里建表。接下来该动手了。4. 核心基础操作库、表、数据的增删改查4.1 先建一个自己的数据库CREATE DATABASE在MySQL里库Database是容纳表的容器。你可以理解为一个文件系统的顶层文件夹一个库底下有一堆表。创建库的语法非常简单CREATE DATABASE shop_demo;然后你可以用SHOW DATABASES看到它出现在列表里。用下面的命令切换到该库USE shop_demo;切换之后后续操作默认都会在这个库里进行。如果你不想每次切换也可以在创建表时带上库名前缀比如shop_demo.users不过平时还是习惯先USE。删除一个库的语法是DROP DATABASE shop_demo;。这条命令要特别小心因为MySQL不会要求你二次确认执行完整个库连同里面所有表的数据会瞬间消失。我见过不少新手在测试环境里把刚创建的表误删了只能欲哭无泪。如果你要操作生产环境强烈建议先做备份再动DROP。4.2 建表之前的必修课看懂数据类型建表首先要搞清楚每个列用什么数据类型。直接决定你存的内容是否合理、查询是否高效。MySQL常用的数据类型分为几类整数型TINYINT、SMALLINT、INT、BIGINT。存用户ID、数量、年龄这种数字。选型标准根据数据范围来比如年龄TINYINT就够订单号用BIGINT更安全。小数型DECIMAL、FLOAT、DOUBLE。存价格、金额时务必用DECIMAL不要用FLOAT因为FLOAT是浮点数计算时存在精度损失比如0.10.2可能得到0.30000000000000004。钱这种东西精度损失是绝对不能容忍的。字符串型CHAR、VARCHAR、TEXT。CHAR是定长字符串存身份证号这种长度固定的VARCHAR可变长度存用户名、邮箱这种长度不固定的TEXT用来存长文本比如文章内容。日期时间型DATE日期、TIME时间、DATETIME日期时间、TIMESTAMP时间戳。注册时间、订单时间一般用DATETIME或TIMESTAMP这里有个区别TIMESTAMP有2038年的上限问题而且会自动处理时区DATETIME则不会。日常应用更推荐DATETIME直观无歧义。此外还有一个布尔类型BOOLEAN实际是TINYINT(1)的别名存0或1。判断是否删除、是否启用时用这个很方便。4.3 创建一张用户表CREATE TABLE实例假设我们要为一个商城系统建一张用户表需要存下面这些信息用户ID主键自增用户名唯一不为空密码哈希不为空邮箱年龄余额精确到分注册时间建表语句如下CREATE TABLE users ( id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 用户ID自增主键, username VARCHAR(50) NOT NULL COMMENT 用户名, password_hash VARCHAR(255) NOT NULL COMMENT 密码哈希值, email VARCHAR(100) DEFAULT NULL COMMENT 邮箱, age TINYINT UNSIGNED DEFAULT NULL COMMENT 年龄, balance DECIMAL(10, 2) DEFAULT 0.00 COMMENT 账户余额, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 注册时间, PRIMARY KEY (id), UNIQUE KEY uk_username (username) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci COMMENT用户表;逐行解释一下AUTO_INCREMENT自动递增不需要你手动填IDMySQL会从1开始每次加1。UNSIGNED只存非负数让ID的范围扩大一倍。VARCHAR(50)最多50个字符超出会报错。DECIMAL(10,2)一共10位数字其中小数点后2位也就是说最大金额是99999999.99。DEFAULT CURRENT_TIMESTAMP插入数据时如果不指定自动取当前时间。ENGINEInnoDB存储引擎这是MySQL最常用的引擎支持事务和外键后面详解时还会提到。CHARSETutf8mb4字符集存取中文和表情符号时必须要用utf8mb4。旧版的utf8是utf8mb3存不了emoji而且某些生僻字会报错。建完表之后用DESC users;可以查看表结构能看到每列的字段名、类型、默认值等信息。用SHOW CREATE TABLE users\G可以看到建表语句原样。4.4 插入数据INSERT语句的三种玩法表建好了不塞数据进去就是空架子。插入数据的语法是INSERT INTO users (username, password_hash, email, age, balance) VALUES (zhang_san, e10adc3949ba59abbe56e057f20f883e, zhangsanexample.com, 25, 100.50);这里要注意几点表名后面的括号里列出的字段要和VALUES一一对应顺序也要对应。ID不用写因为它是自增的created_at不写时就用默认的当前时间。字符串和日期要用单引号包裹数字不用。如果你要一次性插入多条记录可以写INSERT INTO users (username, password_hash, email, age, balance) VALUES (li_si, e10adc3949ba59abbe56e057f20f883e, lisiexample.com, 30, 0), (wang_wu, e10adc3949ba59abbe56e057f20f883e, NULL, 22, 88.88);NULL是空值表示该字段没有被赋值。如果建表时设置了DEFAULT NULL插入时省略这个字段也会变成NULL。第三种玩法是从另一张表复制数据INSERT INTO users (username, password_hash, email, age, balance) SELECT username, password_hash, email, age, balance FROM temp_users;这种批量导入在数据迁移时非常实用。插入数据后怎么确认成功了执行SELECT * FROM users;你能看到刚插入的所有记录此时已经完美跑通了从建库建表到插入数据的全流程。4.5 查询数据SELECT入门与WHERE条件过滤查询是SQL里用得最频繁的操作没有之一。最基础的SELECT就是“全表扫描”SELECT * FROM users;星号代表返回所有列。实际开发中我更推荐你明确列出需要的字段比如只查用户名、邮箱和余额SELECT username, email, balance FROM users;这样做的好处是减少无关数据传输而且在联合查询时能避免列名冲突。接下来是重点WHERE子句。它相当于在表格里按条件过滤行。比如查年龄大于等于25的人SELECT username, age FROM users WHERE age 25;多个条件用AND同时满足和OR满足任一连接SELECT username, balance FROM users WHERE age 20 AND balance 50;还可以用IN来匹配一组可能的值SELECT username FROM users WHERE age IN (22, 25, 30);模糊查询用LIKE配合百分号通配符SELECT username FROM users WHERE username LIKE zhang%;zhang%表示以zhang开头的所有字符串。注意LIKE在%出现在开头时无法使用索引数据量大时会慢这是后话。排序用ORDER BY默认升序DESC表示降序SELECT username, balance FROM users ORDER BY balance DESC;限制返回条数用LIMIT分页查询经常用到SELECT username FROM users LIMIT 5;跳过前两条再取三条SELECT username FROM users LIMIT 2, 3;这里LIMIT的语法是偏移量, 条数很容易和MySQL的另一个语法LIMIT 3 OFFSET 2混淆效果一样。新手建议只用一种写法避免关键时刻记混。4.6 修改和删除数据UPDATE与DELETE的安全操作改数据用UPDATE格式是UPDATE 表名 SET 列值 WHERE 条件。比如给某个用户余额加200UPDATE users SET balance balance 200 WHERE username zhang_san;这里有个非常重要的原则UPDATE和DELETE必须要有WHERE条件如果漏了WHERE那就变成了更新或删除整张表的全部数据。MySQL默认在命令行里执行DELETE不带WHERE会报错是的它其实会拦你一下因为安全模式ON但UPDATE默认不一定拦。我亲眼见过某个同事在测试环境执行UPDATE users SET balance 0;结果整个表余额清零的“事故”。所以请务必形成肌肉记忆写UPDATE前先用SELECT用同样的WHERE查一遍确认要改的就是这几行。删除数据的语法DELETE FROM users WHERE id 1;如果想把表数据全清空但保留表结构有两种方式DELETE FROM users; TRUNCATE TABLE users;两者区别是DELETE是逐条删除可以通过事务回滚TRUNCATE是直接重建表速度快但无法回滚。日常开发中清空临时表用TRUNCATE业务数据删除尽量用DELETE并配合WHERE条件。另外还要说一个概念逻辑删除 vs 物理删除。实际企业项目里很少会直接DELETE数据而是在表里加一个is_deleted字段0表示未删除1表示已删除查询时总是带上WHERE is_deleted 0。这样做的好处是防止误删导致数据无法恢复还能保留历史审计线索。新手一开始就养成这个习惯对以后进团队开发会非常有帮助。5. 常见错误与排查技巧实录5.1 忘记root密码怎么办这是个高频问题几乎所有新手在某个时刻都会碰上。Windows下最简单的方式是通过配置文件跳过密码验证在MySQL配置文件my.ini一般在安装目录下的[mysqld]段末尾添加一行skip-grant-tables。保存文件后打开服务管理器右键MySQL服务点击重启。重启后用命令mysql -u root直接回车进入无需密码。执行FLUSH PRIVILEGES;再执行重置密码语句ALTER USER rootlocalhost IDENTIFIED BY 新密码;把刚才配置文件里的skip-grant-tables删掉再重启一次服务。Linux和macOS同理只是配置文件路径不同通常是/etc/mysql/my.cnf或/etc/my.cnf。这里必须提醒一句skip-grant-tables相当于暂时关闭了MySQL的全部权限校验任何人连上你的数据库都能为所欲为。这个配置千万不能长期存在只在重置密码的窗口期使用用完立刻删掉。5.2 中文乱码的根源与解决你在Windows命令行里执行INSERT插入中文后查询发现全是问号或者乱码绝大多数原因是字符集不一致。MySQL字符集涉及客户端、连接器、服务端、表、列多个层面。最简单的排查思路是保证所有环节都是utf8mb4。首先查看当前MySQL默认字符集SHOW VARIABLES LIKE character_set%;看到结果中character_set_server不是utf8mb4的话你需要修改配置文件。Windows下在my.ini的[mysqld]下面加上character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ciLinux下修改/etc/mysql/mysql.conf.d/mysqld.cnf加同样配置后重启服务。另一个容易踩的坑是你当时建表的时候没指定字符集而服务器的默认字符集是latin1这会导致表已经以latin1创建。这时需要转换成utf8mb4ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;命令行连接时还可以临时指定客户端字符集mysql --default-character-setutf8mb4 -u root -p如果是用图形工具连接乱码检查工具侧的连接编码设置在连接参数里把编码改成UTF-8。做完这几步中文就老实了。5.3 3306端口被占用安装MySQL后启动服务失败或者连接时提示Address already in use通常是3306被其他程序占了。可能占用它的包括旧的MySQL实例、某些集成环境比如PHPStudy、宝塔里内置的数据库、甚至恶意软件。排查方法Windows下打开命令提示符netstat -ano | findstr 3306这条命令会列出占用3306的进程PID。然后打开任务管理器在详细信息里找到对应的PID看是什么进程。如果是残留的mysqld进程可以直接结束它。如果是其他软件占用了要么改其他软件的端口要么把MySQL端口改成3307改端口只需要在配置文件的[mysqld]下加一行port3307然后重启服务但后面连接命令里的-P参数也要同步改成3307。Linux下排查命令sudo lsof -i:3306如果输出里有mysqld说明是你自己的服务如果显示别的进程大概率是端口冲突。还可以用sudo systemctl stop mysql停掉服务后再查一次确认是否是MySQL自己占用导致的上次崩溃遗留。5.4 新手最常犯的几个小错误把分号忘了SQL语句结尾的分号表示“我要执行了”少一个分号MySQL会提示-表示它还在等你的下一段输入。此时补上分号回车就行。大小写不敏感MySQL的关键字和函数名大小写不敏感但表名在Linux下区分大小写。为了统一建议关键字全大写表名和字段名全小写下划线分隔。数据类型填错给VARCHAR字段插入数字没问题但给INT字段插入字符串可能不会报错而直接变成0这是MySQL的宽松转换导致的数据污染。严格模式可以禁止这种行为在配置里加sql_modeSTRICT_TRANS_TABLES即可。单引号双引号混用MySQL默认单引号表示字符串双引号在默认模式里也可以表示字符串。但为了兼容传统模式建议字符串一律用单引号。同名数据库已存在执行CREATE DATABASE时如果同名库已存在会报错database exists可以用CREATE DATABASE IF NOT EXISTS shop_demo;同理建表时也用CREATE TABLE IF NOT EXISTS users(...)避免重复执行报错。我把这些常见坑单独列出来是因为它们每一个我都踩过或者带新人时见别人踩过。学数据库这件事不怕不会就怕错了不知道为什么。把这些报错信息记下来再遇到时你去搜索引擎一查大概就知道是什么原因了。最后说点题外话我在早几年带项目时总会让新人把每一行SQL手打两遍以上不是为了凑练习量而是为了让他们感知到SQL的“呼吸感”——哪里该有空格哪里该结束哪里是条件。数据库这种东西你光看教程眼睛会了手不会。看完这篇强烈建议你打开终端把文章里的命令一个个敲出来哪怕中间报错也没关系报错才是你真正开始学习的信号。MySQL的语法就那几十个关键词把基础CRUD练成本能后面再学索引优化、多表关联、事务隔离就是顺水推舟的事。下一篇我会接着讲主键设计、唯一约束和常用的内置函数我们到时候继续。

相关新闻

让AI Agent写出正确代码:自我验证闭环实战指南

让AI Agent写出正确代码:自我验证闭环实战指南

过去大半年,我一直在折腾 AI Agent 写真实业务代码。最头疼的不是它写不出来,而是它写出来的东西你不敢信:代码结构完整、命名也规范、注释还齐,结果一跑测试,边界条件炸了一地。后来听到一位在开发者工具领域深耕多年…

2026/10/15 21:18:29 阅读更多 →
大麦抢票脚本怎么用:Python 自动化抢票从登录到下单的完整指南

大麦抢票脚本怎么用:Python 自动化抢票从登录到下单的完整指南

大麦抢票脚本怎么用:Python 自动化抢票从登录到下单的完整指南 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 想让热门演出大麦抢票不再拼手速,靠的不…

2026/10/15 21:18:29 阅读更多 →
LoRA:大语言模型的低秩适应

LoRA:大语言模型的低秩适应

研究问题 预训练模型通常需要下游任务数据来继续训练模型,全参数微调更新全部参数:模型越大,梯度、优化器状态和任务专属模型副本的开销越高。 问题:能否只训练少量参数,获得接近全参数微调的效果,同时减少…

2026/10/15 21:18:29 阅读更多 →

最新新闻

MySQL时间类型选型:DATETIME与TIMESTAMP底层差异与避坑指南

MySQL时间类型选型:DATETIME与TIMESTAMP底层差异与避坑指南

MySQL 的时间类型,尤其是在 DATETIME 和 TIMESTAMP 之间反复纠结的情况,我见过太多了。很多人直到线上出现“时间差8小时”或者“2038年数据写不进去”才发现自己对这两个类型的理解还是靠猜。今天把这俩家伙的底层逻辑、行为差异、性能取舍和选型思路一…

2026/10/15 22:08:39 阅读更多 →
Hive小文件合并实战:Map输入端与输出端参数配置及避坑指南

Hive小文件合并实战:Map输入端与输出端参数配置及避坑指南

1. 为什么HIVE小文件问题总在凌晨三点爆发 做过离线数仓的人大概率都经历过这种场景:凌晨跑批任务,前面几十个ETL节点都绿了,最后一个分区写入的节点卡在99%不动,打开监控一看,Reduce阶段还剩两百多个task在慢慢磨&…

2026/10/15 22:08:39 阅读更多 →
Vibe Coding的隐患:AI生成的代码为何没人敢碰?

Vibe Coding的隐患:AI生成的代码为何没人敢碰?

Vibe Coding为什么“写完就没人敢碰”?最近“Vibe Coding”这个词在开发者圈子里越来越热,代价也越来越明显。简单说,Vibe Coding就是开发者把写代码这件事很大程度上交给AI代码工具,自己只描述意图、提需求,然后接受A…

2026/10/15 22:08:39 阅读更多 →
claude-code下载安装与使用:从winget到cmd的TaoToken接入实践

claude-code下载安装与使用:从winget到cmd的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/15 22:08:39 阅读更多 →
AI Agent Harness 与 CMS 系统集成管控:把 endpoint 改到 TaoToken 的落地大纲

AI Agent Harness 与 CMS 系统集成管控:把 endpoint 改到 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/15 22:08:39 阅读更多 →
MySQL表管理完全指南:建表、改表、查表与删表

MySQL表管理完全指南:建表、改表、查表与删表

1. 表管理其实就五件事:今天这堂课先定个范围 上午后两节课排的是MySQL数据库表管理。一听到“表管理”,很多同学第一反应是“不就是CREATE TABLE、DROP TABLE吗,这有什么好讲的”。但真坐到电脑前面开始建表、改表、查表结构、清数据、迁移字…

2026/10/15 22:07:37 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →