一文搞懂MySQL socket连接:原理、配置与2002/2003故障排查
一次线上事故让我把socket连接这件事彻底搞明白了。当时某个项目组反馈所有本地应用突然连不上MySQL我登录服务器一看mysqld进程明明活着3306端口也在正常监听可本地应用全部报socket错误。查了半个多小时最后发现是部署新版本时配置文件被覆盖mysqld把socket文件写到了临时目录而应用还按老路径去找。这件破事让我意识到MySQL服务器配置与socket连接这件事平时看着简单真出了问题很多人的排查思路是乱的。这篇文章就围绕这个主题把socket和TCP连接的区别、my.cnf里影响连接的关键参数、客户端各语言驱动怎么指定socket以及最常见的2002/2003报错怎么排查一次性讲透。不管你是刚接触MySQL的新手还是被连接问题折磨过的老开发这篇文章都值得花十分钟看完。1. socket连接与TCP连接的底层差异搞清楚MySQL为什么默认走本地文件1.1 socket文件一种“看得见摸得着”的进程间通信通道很多人第一次接触MySQL的socket连接时都会有个困惑MySQL明明监听了一个端口为什么本地连接还要走一个文件这个文件的专业名称是Unix domain socket本地域套接字它是操作系统内核提供的一种进程间通信机制。TCP连接需要IP地址和端口组成的四元组而Unix domain socket只需要一个文件系统路径就够了。客户端进程和mysqld进程通过这个路径在内核空间直接交换数据不经过网卡不经过TCP协议栈更不需要三次握手。你可以这样理解TCP连接就像小区里的两个住户要通过市政快递系统收发包裹包裹得先从A家到快递总部分拣再送到B家而socket连接相当于小区内部装了条直达管道两家之间的包裹直接通过管道传递既不占用马路也不用等快递车。所以本地连接用socket在性能上天然占优这也是MySQL客户端在连接localhost时默认优先走socket的根本原因。从外部表现上看socket文件在磁盘上确实存在比如常见的/var/run/mysqld/mysqld.sock。但要注意它并不是普通的数据文件而是通信端点。mysqld进程启动时会创建这个文件关闭时会自动删除。你如果在系统刚启动、mysqld还没拉起来时去看这个路径文件可能是不存在的。1.2 两条路径的分界规则localhost不等于127.0.0.1这是配置中第一个容易踩坑的地方。很多人以为localhost和127.0.0.1是一回事但在MySQL的连接语义里它们经常走的是完全不同的路径。客户端连接localhost或本机主机名且没有额外指定host参数时默认使用socket连接。客户端连接127.0.0.1、0.0.0.0或任何远程IP时走的是TCP/IP连接。如果服务器开启了skip-networkingTCP连接会被完全禁用此时只能通过socket连接。想验证当前连接到底走的哪条路可以在mysql命令行里执行status或\s看输出里的UNIX socket字段也可以执行SHOW PROCESSLIST观察每个连接的Host列socket连接的Host会显示为localhostTCP连接的Host会显示为IP地址加端口比如127.0.0.1:52314。我见过不少同事排查问题时的第一反应是“本地都连不上肯定是端口没监听”然后跑过去ss -lnt看3306发现端口是通的就开始怀疑是认证问题。实际上本地应用走的是socket端口监听与否根本不影响socket连接。两者分开判断能省掉大量无用功。1.3 为什么我把本地访问优先给socket除了性能上省掉协议栈开销socket连接在安全和运维上也有明显优势。安全方面socket文件默认只允许本机进程访问不暴露网络端口。即使服务器上跑了其他服务也无法通过网络远程连接到这个socket。许多生产环境会刻意用防火墙封掉3306只保留本机应用通过socket访问数据库这样数据库对外完全不可见攻击面小了很多。运维方面socket连接配合auth_socket插件可以实现免密登录。Debian系系统上经常能看到root用户使用auth_socket认证方式系统用户通过sudo mysql命令直接进MySQL不需要密码。这种机制在本地运维场景下非常方便也避免了把root密码写进各种脚本里的风险。但要注意socket连接只适用于客户端和mysqld在同一台主机上的场景。随着容器化普及应用容器和数据库容器往往分属不同主机或不同网络命名空间这种情况下socket文件无法共享只能走TCP连接。这点在后面的容器场景排查里会再提到。2. my.cnf中影响连接行为的关键参数改错一个就全盘报错2.1 四个核心参数的定位与默认值服务器端配置中和连接行为直接相关的参数主要集中在my.cnfLinux或my.iniWindows文件的[mysqld]段。我用一张表把这四个关键参数列出来参数作用常见默认值说明socket指定mysqld监听的本地socket文件路径各发行版不同目录必须存在且mysqld进程有写权限port指定TCP监听端口3306被skip-networking关闭后失效bind-address指定TCP监听绑定的网络接口因版本和系统而异有时是*默认值在不同发行版上差异很大skip-networking是否完全禁用TCP/IP连接OFF开启后客户端只能走socket连接需要注意的是不同发行版对默认socket路径的约定不一样排查问题时千万别拿网上的配置直接套。Debian系默认在/var/run/mysqld/mysqld.sockCentOS系通常默认在/var/lib/mysql/mysql.sock源码编译安装的版本经常用/tmp/mysql.sock。所以看到别人博客写的路径和你系统不一样先别急着改配置用下面这行命令看看真实生效值mysql -e SHOW VARIABLES LIKE socket;如果你根本连不上数据库用mysqld进程的help输出也能看到编译时的默认路径mysqld --verbose --help 2/dev/null | grep -E ^socket2.2 修改socket路径后的联动步骤很多人改socket路径时只改了my.cnf结果mysql命令行还是去老路径找socket报错2002。正确的修改流程应该包含下面这几步。首先在my.cnf的[mysqld]段和[client]段各写一行socket配置。我的建议是[client]段一定要写因为mysql、mysqldump、mysqladmin这些客户端工具默认读取[client]段配置一致后它们会自动用新路径连接。[mysqld] socket /var/run/mysqld/mysqld.sock [client] socket /var/run/mysqld/mysqld.sock然后确认socket文件所在目录存在且权限正确。这是一个经常被忽略的点。如果改了路径到/var/run/mysql_custom/mysqld.sock而这个目录不存在mysqld启动时可能直接失败或者在日志里报错bind socket失败。创建目录并授权后别忘了重启mysqldsocket参数不像max_connections之类可以热加载必须重启进程才生效。mkdir -p /var/run/mysql_custom chown mysql:mysql /var/run/mysql_custom systemctl restart mysqld重启后验证一下到底有没有在监听ls -l /var/run/mysql_custom/mysqld.sock ss -lx | grep mysql不要只看配置文件写的路径要以上面这两条命令的实际输出为准。如果mysqld启动失败去错误日志里查bind相关报错比在那儿猜配置要快得多。2.3 bind-address与skip-networking的制衡关系bind-address和skip-networking这两个参数经常被放在一起讨论但它们的功能是完全不同的。bind-address决定了mysqld的TCP监听套接字绑定到哪个网络接口。默认情况下MySQL会监听所有可用的网络接口。如果只想让本机通过TCP访问可以设置bind-address 127.0.0.1这样远程IP无论如何都连不上3306即使防火墙完全放行也没用。而skip-networking一旦开启mysqld干脆不再创建TCP监听套接字port和bind-address参数全部失效。这种模式下MySQL完全变成一个“单机内部组件”只能通过socket或named pipe访问。我曾见过有人为了安全开启skip-networking结果忘了自己的开发机也需要远程连接数据库最后只能临时去服务器上改配置非常被动。要注意的是skip-networking禁用的是包括回环地址在内的所有TCP连接而不是只禁用外部连接。也就是说即使你在客户端指定-h 127.0.0.1也会得到ERROR 2003 (HY000): Cant connect to MySQL server on 127.0.0.1 (111)。想验证skip-networking有没有开启看一下SHOW VARIABLES LIKE skip_networking;的结果就行。开了之后有几个典型表现mysqladmin ping无法通过TCP检查所有只支持TCP连接的客户端工具全部连不上但mysql命令行走socket却一切正常。3. 客户端指定socket连接的几种姿势命令行、驱动、框架3.1 mysql命令行习惯把--socket写进[client]段mysql命令行工具在连接本地数据库时默认会去读取编译时配置的socket路径。但如果你搞不清楚编译路径或者服务器上有多个MySQL实例最好显式指定socket。mysql -u root -p --socket/var/run/mysqld/mysqld.sock如果只是偶尔连一次用--socket参数就够了。但如果这个服务器是你长期用的我更建议把socket配置写进用户家目录下的.my.cnf文件里这样每次执行mysql、mysqldump都不会带错socket路径[client] socket /var/run/mysqld/mysqld.sock user your_name注意如果mysqld进程监听的socket路径和客户端指定的不一致连接会立刻报2002错误。所以当本机出现连接报错时第一件事就是两边对一下路径别急着怀疑密码和账号权限。如果你想强制走TCP连接可以显式指定IP地址和端口mysql -h 127.0.0.1 -P 3306 -u root -p这里有一个表面现象值得留意同一台服务器上走TCP连接时可能因为skip-networking或bind-address限制而失败但走socket连接却正常。反过来也成立socket文件权限出问题时TCP正常、socket报错。所以遇到连接类问题我的习惯永远是用这两种方式分别测一下很快就能定位问题的边界在哪。3.2 编程语言驱动注意“localhost”在不同驱动里的语义差异不同编程语言的MySQL驱动对localhost的处理方式并不统一这是很多框架配置问题的根源。拿最常见的几种来说Python的pymysql在connect方法里默认走的是TCP。即使你写hostlocalhostpymysql也只会把它当成一个字符串去解析不会自动切换到socket。想用socket连接必须显式传入unix_socket参数import pymysql conn pymysql.connect( unix_socket/var/run/mysqld/mysqld.sock, useryour_user, passwordyour_password, databaseyour_db )PHP的mysqli扩展则相反new mysqli(localhost, ...)会优先尝试用socket连接前提是php.ini里mysqli.default_socket配置正确$conn new mysqli(localhost, user, password, db);如果此处使用的是127.0.0.1那就强制走TCP了$conn new mysqli(127.0.0.1, user, password, db);Java的JDBC在标准情况下只支持TCP连接因为JDBC协议是建立在网络套接字之上的。像jdbc:mysql://localhost:3306/db这样的连接串无论写localhost还是127.0.0.1底层都是用TCP回环地址去连接不会走Unix domain socket。如果你的Java应用和MySQL在同一台机器上并且MySQL又开启了skip-networking那么Java应用必然连不上除非额外引入支持socket的底层驱动封装。这种细节在排查跨语言调用问题时最容易踩坑。这一章节我强烈建议你把项目里所有数据库连接字符串列出来挨个核对一遍。我见过太多“本地PHP脚本能连Java服务连不上”的案例最后原因就是PHP走了socket而Java走了TCP而TCP监听因为某种原因不可用。两边机制都清楚后这类问题基本几分钟就能定位。3.3 框架配置文件里的localhost陷阱很多框架的配置文件会提供一个数据库host字段默认值是localhost。但不少框架在底层实现里会对localhost做一层转换最终实际走TCP。真正落到socket还是TCP取决于框架使用的底层驱动和连接串格式。举个例子某些框架在配置里同时存在host和port字段只要port字段非空底层驱动就会强制走TCP连接框架里host填的是localhostport填的是3306于是它不会去走socket。在这种情况下你看到配置写着localhost实际上它连的是127.0.0.1的TCP端口。这个陷阱在生产环境中很容易误导人。排查思路很简单在MySQL里跑一条SQL看当前活跃连接都从哪来SELECT id, user, host, db, command, time FROM information_schema.processlist;如果看到大量连接的host列为127.0.0.1或内网IP那它们走的就是TCP如果出现了localhost那么这些连接走的是socket。结合这条结果再去对照框架配置里的host和port基本能确定框架到底走了哪条通信路径。4. 高频故障排查从报错码到根因的完整链路4.1 先分清三类报错2002、2003、1045遇到连接问题先看报错码别急着反复重试。我整理的这几个经典报错码基本能覆盖九成场景报错码典型错误信息含义2002Cant connect to local MySQL server through socket /var/run/mysqld/mysqld.sock (2)socket文件不存在或路径配置不一致2002Cant connect to local MySQL server through socket /var/run/mysqld/mysqld.sock (13)socket目录或文件权限不足2003Cant connect to MySQL server on 127.0.0.1 (111)TCP连接被拒绝端口未监听或skip-networking开启1045Access denied for user xxxlocalhost认证失败和连接方式无关括号里的数字是系统errno。2代表文件不存在13代表权限拒绝111代表连接拒绝。看到(2)去查路径看到(13)去查权限看到(111)去查监听状态方向不对排查效率会低很多。4.2 一步步定位socket故障的实操链路拿最常见的2002 (2)为例我把自己日常的排查顺序列出来这套顺序在实际操作中被验证过很多次。第一步确认mysqld进程是否存活同时确认它实际使用的socket路径ps aux | grep mysqld如果进程不在直接查错误日志tail -n 50 /var/log/mysql/error.log如果进程在那就从进程命令行里找socket路径。很多mysqld启动时会通过命令行参数传入socket这些参数会覆盖配置文件里的值。cat /proc/$(pgrep mysqld | head -1)/cmdline | tr \0 第二步按进程实际使用的路径去找socket文件ls -l /var/run/mysqld/mysqld.sock如果文件不存在说明mysqld可能在启动时创建失败。这时多半是目录缺失或者属主不对。如果文件存在但客户端还是报错用客户端显式指定该路径测试mysql -u root -p --socket/var/run/mysqld/mysqld.sock第三步对比配置文件与进程实际路径。常见情况是配置里写的是/tmp/mysql.sock但systemd启动脚本里覆盖成了/var/run/mysqld/mysqld.sock。此时即使改了my.cnf也不生效需要同时检查/etc/systemd/system/目录下是否有mysqld的override文件或者启动脚本里有没有--socket参数。这套链路走下来绝大多数socket路径类问题都能落地归因。我遇到过的最难缠案例是系统里同时跑着MySQL 5.7和MySQL 8.0两个实例一个socket在/var/run/mysqld/一个在/var/run/mysqld2/客户端默认找的是前一个路径应用配的却是后一个。两边单看都没问题连在一起就出错。4.3 两个容易被忽略的场景目录权限和容器网络socket文件本身的权限位通常是srwxrwxrwx看起来很开放但真正决定谁能否连接的关键其实是socket文件所在目录的权限。如果目录权限是750且属主是mysql:mysql那么只有mysql用户和mysql组内的用户才能访问。普通系统用户在获取路径后即使能读到socket文件连接时也会触发2002 (13)权限错误。容器化环境里则完全是另一套逻辑。应用容器通过端口映射访问宿主机上的MySQL时绝对不能用socket方式因为socket文件是文件系统层面的东西容器内看到的是容器自己的文件系统看不到宿主机上mysqld创建的socket文件。解决办法就是走TCP把应用连接串的host设成数据库容器的服务名或宿主机IP端口映射到3306。但要注意数据库容器自身必须没开skip-networking否则从容器外永远连不进去。5. 生产环境的连接配置建议权限、skip-networking与配置模板5.1 socket文件的权限要管到什么程度我见过一些服务器的socket目录权限是777这个习惯非常危险。虽然socket通信本身不提供通用的读写数据接口但只要你拥有对socket文件的访问权限就可以作为客户端尝试连接数据库。如果MySQL里恰好有弱口令用户或者root账号的认证插件是caching_sha2_password且密码强度一般那本机任何一个普通用户都可能成为威胁。更稳妥的做法是创建专用系统组。机器上需要连接MySQL本机socket的应用账户全部加入mysql组socket目录设置为750属主为mysql:mysql。这样只有mysql用户和特定组成员才能访问socket目录任何人想从其他用户身份连接socket都会被目录权限挡住。chown mysql:mysql /var/run/mysqld chmod 750 /var/run/mysqld5.2 要不要开skip-networking按场景决策关于skip-networking我给不出一个放之四海皆准的答案因为它完全取决于你的使用场景。单机本地服务比如服务器上只跑一个PHP网站数据库和应用完全在同一台机器上此时开启skip-networking是个不错的选择。MySQL不监听任何TCP端口从外部看就像隐身一样少了一个明确的攻击入口。但如果你有远程运维、开发调试、同步备份这类需求就别开skip-networking。这种需求下更稳妥的方案是bind-address绑定指定IP配合系统防火墙只放行可信来源的3306端口同时把应用账号和运维账号分离运维账号只允许从运维跳板机的IP连接。表里的对比可以帮你快速判断场景推荐配置原因应用和数据库同机可选开启skip-networking本地应用走socket网络面最小需要远程运维不开启bind-address指定IP保留远程通道但缩小暴露范围多应用容器化部署不开启使用内网IP防火墙容器间只能网络通信高安全合规要求不开启仅绑定内网IP配合审计和网络策略更灵活5.3 一套可复用的配置模板与验证命令最后给出一套我在生产环境中常用的配置模板你可以根据实际发行版调整路径。这份模板的核心思路就是“socket路径固定、TCP绑定明确、权限收敛”。[mysqld] # 本地socket连接路径保持稳定并写进项目文档 socket /var/run/mysqld/mysqld.sock pid-file /var/run/mysqld/mysqld.pid # TCP监听端口和绑定地址 port 3306 bind-address 127.0.0.1 # 连接数建议根据实际并发调整 max_connections 500 [client] # 客户端工具自动使用此socket路径 socket /var/run/mysqld/mysqld.sock配置完之后我的验证命令是固定的一套三板斧# 1. 确认端口监听在预期的接口上 ss -lnt | grep 3306 # 2. 确认socket文件存在且权限正确 ls -l /var/run/mysqld/mysqld.sock # 3. 两种连接方式分别验证 mysql -u root -p -e SHOW PROCESSLIST; mysql -h 127.0.0.1 -P 3306 -u root -p -e SHOW PROCESSLIST;如果socket连接和TCP连接都能正常返回结果配置就算落地了。之后把socket路径写进项目的部署文档里注明“修改此路径必须同步[client]段和所有应用连接配置”基本就能避免开头提到的线上事故再发生。聊到这儿我想起一个非常实用的经验把服务器上所有实例的socket路径、端口、配置文件位置整理成一个表格贴到运维笔记里。MySQL连接类问题百分之八十以上都是路径不匹配、端口被禁、权限不足这三类原因而这三类原因在笔记里对一眼就能查出来。最后再分享一个小技巧登录服务器后想快速看当前MySQL监听的socket路径直接执行mysql -e SHOW VARIABLES LIKE socket;就行不用翻配置文件也不用猜。这个习惯帮我省了很多次远程排查的时间。

相关新闻

最大熵补丁采样:让少样本分类模型学会“看哪里”

最大熵补丁采样:让少样本分类模型学会“看哪里”

/* 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 4:45:56 阅读更多 →
个人开发者软著申请全流程指南:材料准备、提交与避坑要点

个人开发者软著申请全流程指南:材料准备、提交与避坑要点

软著这个东西,说白了就是给软件“上户口”。我是从独立开发那会儿开始接触的,一开始也觉得麻烦,无非就是写代码的人做点文档工作。但真正自己走完一遍以后,才发现里面门道不少,很多细节不去实际踩一遍根本想不到。这篇…

2026/10/14 4:45:56 阅读更多 →
JavaScript基础核心概念详解:变量、类型、函数、闭包与异步

JavaScript基础核心概念详解:变量、类型、函数、闭包与异步

我教过不少刚接触代码的人,发现大家学 JavaScript 都会经历同一个尴尬阶段:跟着教程能写出例子,合上教程就不知道下一步该干嘛。原因很简单——基础概念没有变成自己的。这篇文章是「JavaScript 基础」系列的第一讲,目标只有一个&…

2026/10/14 4:45:56 阅读更多 →

最新新闻

28k星竞品面前,我为何放弃AI Agent任务管理产品

28k星竞品面前,我为何放弃AI Agent任务管理产品

1. 从"灵光一现"到"冷静退出":一个产品决策的完整复盘你有没有过这种经历:脑子里突然冒出一个自认为绝妙的产品点子,兴奋得半夜睡不着,打开电脑就开始搜域名、画原型、列功能清单。结果一搜关键词&#xff0c…

2026/10/14 5:28:13 阅读更多 →
写论文软件哪个好?我用了书匠策AI之后,才明白“工具”和“搭档”的区别

写论文软件哪个好?我用了书匠策AI之后,才明白“工具”和“搭档”的区别

书匠策AI官网:www.shujiangce.com 微信公众号搜一搜:书匠策AI 写毕业论文这件事,最诡异的体验是:你明明每天都在写,却说不清自己到底写了什么。 凌晨两点,你对着屏幕改摘要。这是第四版了。第一版导师说“…

2026/10/14 5:28:13 阅读更多 →
数据中心精密空调系统节能优化四大策略

数据中心精密空调系统节能优化四大策略

1. 机房精密空调系统与绿色数据中心的共生关系现代数据中心就像一台永不停止的精密仪器,而机房精密空调系统就是维持这台仪器正常运转的"肺部"。我曾在多个大型数据中心项目中负责空调系统优化,亲眼见证过合理设计的空调系统能为PUE&#xff0…

2026/10/14 5:28:13 阅读更多 →
信创终端算力配置选型指南 | 蓝速科技(larxu)

信创终端算力配置选型指南 | 蓝速科技(larxu)

蓝速科技(larxu)旗下信创触控一体机、人脸识别终端覆盖RK、飞腾、兆芯等多档国产算力方案,适配银河麒麟与鸿蒙双系统,可根据业务场景精准匹配配置,避免性能过剩浪费或算力不足卡顿。一、信创终端算力选型的常见误区很多…

2026/10/14 5:28:13 阅读更多 →
OpenClaw实战:让AI自动操作Apple备忘录的完整指南

OpenClaw实战:让AI自动操作Apple备忘录的完整指南

1. 这个Skill解决什么问题:AI对话与本地备忘录之间的最后一公里你有没有过这种时刻:让AI帮你把一段碎片想法扩成一份条理清晰的记录,生成内容很满意,结果发现把它从聊天窗口挪进备忘录这件事,居然还要自己动手。如果AI…

2026/10/14 5:28:13 阅读更多 →
Spring Boot诊所管理系统开发实战:从数据库设计到核心业务闭环

Spring Boot诊所管理系统开发实战:从数据库设计到核心业务闭环

我先把这个系统的骨架在脑子里过了一遍,然后直接开写。这个题目看着是个毕业设计级别的项目,但真正落地的时候,牵扯到的业务需求和工程细节比想象中要多得多。诊所管理系统和普通的增删改查不一样,它涉及挂号、诊断、处方、收费、…

2026/10/14 5:27:13 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29: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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →