程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
编程(第2页)
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
OpenSSH 10.6 升级笔记:压缩、用户名和证书日期这三处先动
编程
OpenSSH 10.6 升级笔记:压缩、用户名和证书日期这三处先动
2026-10-22 21:03:38
OpenSSH 10.6 关闭 LZ77 字典编码器以缓解多路复用压缩侧信道,Compression 效果随之变差;ssh 命令行用户名拒收 $ 与反斜杠;ssh-keygen 修正夏令时导致证书过期时间偏差。附验证命令、重签检查与升级顺序。
OpenSSH
运维
安全
升级
Caddy 2.11.6 → 2.11.7 升级笔记:16 KiB 请求头上限、1 分钟 idle 超时和它引出的三个回归
编程
Caddy 2.11.6 → 2.11.7 升级笔记:16 KiB 请求头上限、1 分钟 idle 超时和它引出的三个回归
2026-10-22 21:03:38
Caddy 2.11.6 把请求头默认限制收到 16 KiB、丢弃含点号的头、加了 1 分钟 idle 超时;2.11.7 修回 HTTP/2 反代 panic、POST+SSE 整 60 秒截断、静默 SSE 被重置。给出配置片段、431 与 60 秒截断的排查顺序,以及 RFC 10036 Incremental 头的用法。
Caddy
运维
反向代理
升级
PHP 8.6 的 Io\Poll:900 连接下吞吐 3.88 倍,不用再手搓三个引用数组
编程
PHP 8.6 的 Io\Poll:900 连接下吞吐 3.88 倍,不用再手搓三个引用数组
2026-10-22 21:03:21
PHP 8.6 新增 Io\Poll:用 Context/Event/StreamPollHandle 加 watcher 元数据取代三个引用数组。整理 stream_select 的状态与 1024 fd 上限问题、第三方基准(900 连接 3.88 倍吞吐)、注册 Write 的真实语义、TLS 流 unread_bytes 的修复,以及 8.6 还缺定时器与信号。
PHP
并发
IO多路复用
性能
PHP 8.6 流错误处理:错误变成值对象,但 `@` 仍然删不掉
编程
PHP 8.6 流错误处理:错误变成值对象,但 `@` 仍然删不掉
2026-10-22 21:03:21
PHP 8.6 把流错误变成按 context 配置的值对象:error_mode/error_store/stream_last_errors,code 是枚举。给出与 error_get_last 的前后对比、选项必须写在 stream wrapper 下的报错,以及关键坑——Silent 不替代 @,域名解析失败仍从网络层先出 warning。
PHP
错误处理
流
升级兼容
MySQL 9.7.4 收紧 EXCHANGE PARTITION:两边 CHECK 都要过,交换前先跑一条 SELECT 预检
编程
MySQL 9.7.4 收紧 EXCHANGE PARTITION:两边 CHECK 都要过,交换前先跑一条 SELECT 预检
2026-10-22 21:02:17
MySQL 9.7.4 之后 EXCHANGE PARTITION 会双向校验 CHECK 约束,生成列定义不一致直接拒绝,报 ERROR 3819。说明 WITHOUT VALIDATION 只跳过分区边界、不跳过 CHECK,并给出生成列比对、交换前 SELECT 预检与失败后的回退判断。
MySQL
分区表
DDL
约束校验
升级 Go 1.27 后 JSON 接口的行为变化:v1 默默接受的输入,v2 默认报错
编程
升级 Go 1.27 后 JSON 接口的行为变化:v1 默默接受的输入,v2 默认报错
2026-10-22 21:02:02
Go 1.27 把 encoding/json 换成了 v2 后端:非法 UTF-8、对象内重复键从「静默容错」变成报错。整理两类输入的表现差异、错误文案变化的排查方式、jsontext 流式校验、v1 语义 Options 与 GOEXPERIMENT=nojsonv2 兜底,以及 format/unknown/inline 等选项的移除与改名。
Go
encoding
json
JSON
升级兼容
网络恢复了,组却回不来:MySQL 9.7.4 修掉的 Group Replication 分区恢复死循环
编程
网络恢复了,组却回不来:MySQL 9.7.4 修掉的 Group Replication 分区恢复死循环
2026-10-22 21:02:02
网络分区恢复后 Group Replication 丢了 quorum,日志反复刷 MY-013781 且写入一直挂起。给出连接 delegation 卡住重连循环的原因、三条确认依据(错误日志、成员状态、事务队列)、9.7.4 的单次非阻塞修复,以及多网卡主机同 SQL 端口的成员识别坑。
MySQL
Group
Replication
复制
故障排查
PHP 8.6 RC3 修掉两个自己引入的回归:fiber 里的 warning 和快 4% 的 hrtime()
编程
PHP 8.6 RC3 修掉两个自己引入的回归:fiber 里的 warning 和快 4% 的 hrtime()
2026-10-22 20:03:12
PHP 8.6 RC3 有一半的修复是在收拾 8.6 自己引入的回归:没有 php.ini 时 fiber 以 error_reporting=0 启动,官方 Docker 镜像里 fiber 内 warning 全部消失;hrtime() 因改用 CLOCK_MONOTONIC_RAW 在 WSL2 上快约 4%,且在 Linux 5.3 之前不走 vDSO;array_map 的快速路径在 strict_types=1 下开始做类型检查。文中给出复现片段、实测数据与 RC 阶段该验证什么。
PHP
版本升级
运维
性能
回归测试
MySQL 9.7 社区版能开 hypergraph_optimizer 了:WL#17265 的改动、五个开关与验证方法
编程
MySQL 9.7 社区版能开 hypergraph_optimizer 了:WL#17265 的改动、五个开关与验证方法
2026-10-22 20:02:09
社区版 MySQL 一直能看到 optimizer_switch 里的 hypergraph_optimizer,却开不起来。WL#17265 把它编进默认构建但仍默认关闭。本文拆清两个 CMake 选项的区别、五种开启方式的作用域差异,以及编译关闭时 SET 报 3999、启动参数被接受却不生效、SET_VAR 只给 warning 这三种表现,并用 optimizer trace 证明是否真的用上了新优化器。
MySQL
数据库
优化器
执行计划
运维
TCC 库存 Cancel:空回滚、悬挂、幂等怎么用一张 tcc_fence_log 收口
编程
TCC 库存 Cancel:空回滚、悬挂、幂等怎么用一张 tcc_fence_log 收口
2026-10-22 00:05:24
TCC 里库存服务的 Cancel 写成无条件 UPDATE 会把库存凭空加出来:Try 可能没到或回滚了,TC 照样发 Cancel。这篇讲清空回滚、悬挂、幂等三个问题如何用一张 tcc_fence_log 收口:主键 (xid,branch_id) 做幂等、Try 插入 tried 撞主键就拒绝、Cancel 先 SELECT FOR UPDATE 再按状态分支、条件 UPDATE 影响行数为 0 怎么处理,以及 fence 写入必须与库存变更同本地事务、useTCCFence 默认 false 这类实际踩点。
库存回滚
TCC
分布式事务
Seata
幂等
空回滚
悬挂
PgBouncer 事务池下的 prepared statement:42P05、26000、08P01 与 1.21–1.24 的版本分界
编程
PgBouncer 事务池下的 prepared statement:42P05、26000、08P01 与 1.21–1.24 的版本分界
2026-10-22 00:05:01
事务池模式下 prepared statement 为什么会在三条 backend 之间串味:42P05 名字撞车、26000 语句不在这个后端、08P01 参数个数对不上,三种报错根因不同。补 PgBouncer 1.21/1.22/1.24 的版本分界、max_prepared_statements 默认 200 的 LRU 与内存代价、DEALLOCATE ALL 在 1.21 上的历史坑,以及 pgx、asyncpg、pgJDBC、postgres.js 各自关掉命名的方法。
事务池
PgBouncer
prepared-statement
PostgreSQL
连接池
max_prepared_statements
秒杀库存回滚别用 INCR:扣减流水、同槽 key 与乱序补偿
编程
秒杀库存回滚别用 INCR:扣减流水、同槽 key 与乱序补偿
2026-10-22 00:04:20
秒杀场景里取消订单后把库存还回 Redis,直接 INCRBY 会因重试重复加量且无法追溯。这篇只谈缓存层的回滚:用扣减流水 hash 做幂等、stock 与 history 必须同 hash tag 否则 EVAL 报 CROSSSLOT、回滚先落扣减后落的乱序怎么用顺序消息或对账兜底、「查不到流水就当成功」在 key 过期和淘汰时为何是错的,以及分段库存下回滚必须回到原 bucket 否则碎片化。
库存回滚
Redis
秒杀
Lua
Cluster
幂等
库存超卖
MaxScale 25.01 readwritesplit:causal_reads 七个模式,与 transaction_replay 重复写两次的边界
编程
MaxScale 25.01 readwritesplit:causal_reads 七个模式,与 transaction_replay 重复写两次的边界
2026-10-22 00:03:41
读写分离代理踩的两个隐性坑:causal_reads 用 MASTER_GTID_WAIT 保证读到自己的写(含 MXS-5527 里 INSERT...RETURNING 失效),transaction_replay 在 COMMIT 在途时可能重复提交,以及 MaxScale 25.01 把 reuse_prepared_statements 与 optimistic_trx 移出路由器带来��升级失效。
数据库代理
MaxScale
readwritesplit
读写分离
causal_reads
transaction_replay
MariaDB
支付宝要 7 个字符 success,微信要空响应体:支付异步通知的应答语义与重试时间表
编程
支付宝要 7 个字符 success,微信要空响应体:支付异步通知的应答语义与重试时间表
2026-10-22 00:03:29
同一套 JSON 响应封装发给支付宝和微信,三家全判失败:支付宝要响应体只有 success 七个字符,微信 APIv3 要 200/204 空报文,V2 要 XML return_code=SUCCESS。整理三家应答语义、25h/8 次与 24h4m 的重试节奏,以及 ACK 之前必须先落库的原因与 Go/PHP handler 骨架。
异步通知
支付回调
notify_url
接口对接
Go
PHP
幂等
Postgres 连接风暴:97 个可用槽位、三条 FATAL 与四个默认为 0 的超时
编程
Postgres 连接风暴:97 个可用槽位、三条 FATAL 与四个默认为 0 的超时
2026-10-21 21:31:38
Postgres 连接耗尽多数不是单点 bug,而是池大小算术、重启惊群和重试放大叠出来的。这篇把 97 个可用槽位、三条 FATAL 原文、四个默认为 0 的超时和 full jitter 重试串成一条可落地的排查与整改路径。
PostgreSQL
连接池
运维
PgBouncer
SQLAlchemy
用 DuckDB mysql 扩展直连线上 MySQL:ATTACH 写法、secret 管理与 pushdown 边界
编程
用 DuckDB mysql 扩展直连线上 MySQL:ATTACH 写法、secret 管理与 pushdown 边界
2026-10-21 21:31:04
DuckDB 的 mysql 扩展可以直接 ATTACH 线上 MySQL 做临时分析,不用先同步数据。这篇给出可复现的连接、secret、只读配置,并说明聚合不 pushdown、结果集不流式、单连接串行等实际边界,附过滤下压与落 Parquet 的写法。
DuckDB
MySQL
SQL
数据分析
Parquet
Bash 5.3 的 ${ cmd; }:在 PS0 里改当前 shell 变量,做 preexec 与命令计时
编程
Bash 5.3 的 ${ cmd; }:在 PS0 里改当前 shell 变量,做 preexec 与命令计时
2026-10-21 21:06:11
Bash 5.3 新增的 ${ cmd; } 让 PS0 能直接改当前 shell 的变量,于是命令计时与 preexec 不必再挂 DEBUG trap。本文给出用 BASH_MONOSECONDS 计时的配置、展开与执行顺序,以及为什么 DEBUG trap 不适合做耗时统计。
Shell
Bash
终端配置
关掉 index_merge_union 后 OR 查询返回空集:MySQL 9.7.4 修掉的优化器正确性 bug
编程
关掉 index_merge_union 后 OR 查询返回空集:MySQL 9.7.4 修掉的优化器正确性 bug
2026-10-21 21:06:11
MySQL 把 index_merge_union 关掉后,某些 OR 查询会漏掉一个 disjunct,本应四行却返回 Empty set。本文给出最小表结构、开关对照的 EXPLAIN 与结果比对方法,说明 EXPLAIN 不能证明结果正确,并给出升级、恢复开关、UNION ALL 重写三条修法。
MySQL
优化器
故障排查
终端打印 hot updated,页面上的值没变:Vite 8.3.4 在 bundled-dev 下重算 acceptExports 边界
编程
终端打印 hot updated,页面上的值没变:Vite 8.3.4 在 bundled-dev 下重算 acceptExports 边界
2026-10-21 21:05:23
Vite 8.3.4 在 bundled-dev 模式下补齐 acceptExports 的边界计算:8.3.3 会在控制台打印 hot updated,页面上的旧值却不动。本文用 child/parent 两个模块对照两个版本的日志与 DOM,说明边界往上不通知引用方这条本来存在的语义。
Vite
前端调试
HMR
PHP 8.6 的 pack/unpack 端序修饰符:一个 l< 读取小端 int32,但要小心键名
编程
PHP 8.6 的 pack/unpack 端序修饰符:一个 l< 读取小端 int32,但要小心键名
2026-10-21 21:05:23
PHP 8.6 给 pack/unpack 加上 Perl 风格的 < 与 > 端序修饰符,整数与浮点都能用,读有符号小端 int32 不必再位移修正。本文给出改写前后的对照、unpack('s<value') 键名变化这个坑,以及一次解析支付报文头的格式字符串与自查命令。
PHP
二进制协议
接口对接
Go 1.27.3 / 1.26.10:crypto/x509 拉黑中间证书后的升级与排查
编程
Go 1.27.3 / 1.26.10:crypto/x509 拉黑中间证书后的升级与排查
2026-10-21 21:04:37
Go 1.27.3 与 1.26.10 在 crypto/x509 里加入中间证书 denylist,Verify 会过滤整条链,对应 CVE-2026-111943。本文说明受影响区间、为什么只升系统 CA 包不够、Go 1.27 起 SystemCertPool 尊重 SSL_CERT_FILE 的变化,并给出验证代码与 toolchain 固定写法。
Go
安全升级
TLS
stripe-node 23.0.0 升级笔记:API 版本被静默抬升、payment_method_types 移除、webhook 容差反转
编程
stripe-node 23.0.0 升级笔记:API 版本被静默抬升、payment_method_types 移除、webhook 容差反转
2026-10-21 21:04:37
stripe-node 23.0.0 把 pinned API 版本抬到 2026-09-30.endive,不写 apiVersion 就跟着换版本;payment_method_types 被移除,纯 JS 会在运行期拿 400;webhook 容差语义反转,constructEvent 传 0 变成跳过校验。含本地抓请求头验证、grep 自查与分步升级顺序。
支付
Stripe
接口对接
webhook
给 readonly 属性加了默认值,构造函数里再赋值就抛 Cannot modify readonly property
编程
给 readonly 属性加了默认值,构造函数里再赋值就抛 Cannot modify readonly property
2026-10-21 21:03:32
PHP 8.6 允许 readonly 属性声明默认值,而默认值就是那次唯一初始化,构造函数里再赋值会抛 Cannot modify readonly property。本文给出报错现场、与 8.4 接口属性的关系、unset 报错,以及迁移时默认值该写属性还是构造参数的判断。
PHP
8.6
类型系统
MySQL 9.7.4 版本号变四段,运维脚本里那条三段正则会静默截断
编程
MySQL 9.7.4 版本号变四段,运维脚本里那条三段正则会静默截断
2026-10-21 21:02:17
MySQL 9.7.4 引入 MAJOR.MINOR.PATCH.UPDATE 四段版本号,VERSION() 等既有接口仍是三段。本文讲清四个能取到完整版本的入口,指出 awk 取第三列与三段正则会静默截断导致版本误判,并给出可选第四段的正则与按段比较的 SQL 写法。
MySQL
运维脚本
版本管理
正则
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
289
下一页
共 289 页
到第
页
确定