程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
MySQL 相关技术文章(第2页)
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
网络恢复了,组却回不来: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
复制
故障排查
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
数据库
优化器
执行计划
运维
BOM 是 Windows 写进去、在 Linux 炸开的:PowerShell 5.1 默认编码、compose 的 \uFEFFTEST 与 MySQL 1064
案例
BOM 是 Windows 写进去、在 Linux 炸开的:PowerShell 5.1 默认编码、compose 的 \uFEFFTEST 与 MySQL 1064
2026-10-22 00:04:33
带 BOM 的 UTF-8 在 Windows 上一切正常,落到 Linux 的配置解析器、compose 或 MySQL 客户端时 BOM 就变成内容:PowerShell 5.1 的 Out-File/Set-Content 默认编码对照、实测五种写法的开头字节、compose env_file 里键名变成 \uFEFFTEST、compose.yml 报 service 'version'、MySQL 1064 与 Workbench 的原始报错,附字节确认与清洗命令。
BOM
PowerShell
docker-compose
MySQL
字符编码
运维
用 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
关掉 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
优化器
故障排查
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
运维脚本
版本管理
正则
MySQL 开了并行复制仍延迟:40 万行单事务让 4 个 worker 只剩 1 个在忙
编程
MySQL 开了并行复制仍延迟:40 万行单事务让 4 个 worker 只剩 1 个在忙
2026-10-21 20:04:48
副本开着 replica_parallel_workers=4 仍在延迟,通常不是参数没调对:MySQL 把一个事务整块交给一个 worker,40 万行的单事务让其余三个 worker 全程空转;表没有唯一键时源端退回提交顺序,并行度直接归零。文章给出 perf_schema per-worker 表的读法(APPLYING_TRANSACTION 与 LAST_APPLIED_TRANSACTION 的区别)、Seconds_Behind_Source 读到 0 的陷阱,以及 8.4.11 上的实测数据与 8.0 的 COMMIT_ORDER 默认值。
MySQL
复制
运维
性能排查
binlogless 从库 + 并行复制:复制的 FLUSH PRIVILEGES 在 mysql.gtid_executed 里留空洞,重启后复制中断
综合
binlogless 从库 + 并行复制:复制的 FLUSH PRIVILEGES 在 mysql.gtid_executed 里留空洞,重启后复制中断
2026-10-20 21:09:00
binlogless 从库开了 relay-log recovery、并行复制和 commit-order 保持时,复制过来的 FLUSH PRIVILEGES 可能不在 mysql.gtid_executed 里留记录;重启后从库重请求已应用事务,主库 binlog 已 purge 就报 Cannot replicate。附适用条件、巡检 SQL 与规避手段。
MySQL
复制
运维
GTID
MySQL XA 的两个错序 Bug:GTID 已可见,XA RECOVER 里却还看不到(或还没消失)
代码
MySQL XA 的两个错序 Bug:GTID 已可见,XA RECOVER 里却还看不到(或还没消失)
2026-10-20 21:02:11
MySQL 9.7.4 修了两条 XA 与 GTID 的错序:XA COMMIT 的 GTID 先可见而 XA RECOVER 还在列它;XA PREPARE 的 GTID 先可见而 XA RECOVER 看不到 XID。窗口期内协调器容易漏单或重复决议,文中给出幂等处理与对账宽限窗口的做法。
MySQL
XA
分布式事务
运维
队列
MySQL 9.7.4 回退了收紧的建表校验,但 INSTANT DDL 仍在用严格行大小估算
编程
MySQL 9.7.4 回退了收紧的建表校验,但 INSTANT DDL 仍在用严格行大小估算
2026-10-20 21:01:33
MySQL 9.7.4 把 9.7 早期小版本收紧的 DDL 行大小校验回退了,但 ALTER TABLE ... ALGORITHM=INSTANT 仍走严格算法;同时版本号变成四段而 VERSION() 还是三段,EXCHANGE PARTITION 改双向检查 CHECK 与生成列。附可复现的验证 SQL 和报错原文。
MySQL
运维
DDL
版本升级
warnings
杀掉 MySQL 主库后的两秒:ProxySQL + Orchestrator 异步复制故障切换实验
编程
杀掉 MySQL 主库后的两秒:ProxySQL + Orchestrator 异步复制故障切换实验
2026-10-20 20:01:15
用 Docker 起一套 MySQL 8.4.11 + ProxySQL + Orchestrator 实验室,故意 docker kill 主库,逐秒记录 2 秒零吞吐、4 个失败事务的切换过程;并复现两个 failover hook 的真实 bug(admin 只能本地连接、LOAD MYSQL SERVERS TO RUNTIME 加载过期表让从库短暂变 writer)与提升后重启又变只读的坑。
MySQL
ProxySQL
Orchestrator
高可用
运维实战
在 RDS 上跑 pt-osc:ERROR 1419、参数组重启与 --recursion-method 假死
编程
在 RDS 上跑 pt-osc:ERROR 1419、参数组重启与 --recursion-method 假死
2026-10-20 00:06:37
在 Amazon RDS / Aurora 上跑 pt-online-schema-change,失败点不在 DDL 而在权限模型和工具默认行为:开自动备份就有 binlog,建触发器被 ERROR 1419 挡住,而 RDS 不允许 SET GLOBAL,只能新建 custom 参数组并重启;接着缺 PROCESS 权限、--recursion-method 自动发现从库导致进程挂死(PTDEBUG 停在 MasterSlave:4350 SELECT @@SERVER_ID);最后清理时 DROP 顺序搞反会撞上 ERROR 1146。
pt-online-schema-change
MySQL
RDS
Aurora
OnlineDDL
权限
Percona
pt-osc 中断之后:残留触发器、卡在 MDL 上的 DROP TRIGGER 与 3.6.0 的 --resume
编程
pt-osc 中断之后:残留触发器、卡在 MDL 上的 DROP TRIGGER 与 3.6.0 的 --resume
2026-10-20 00:03:55
pt-online-schema-change 被 kill 或 critical-load 中止后,原表会留下三个 pt_osc_* 触发器、一张拷了一半的 _table_new,以及 3.6.0 才有的 history 进度记录。本文讲残留物怎么核对清理、DROP TRIGGER 为什么会被 MDL 卡住一年(lock_wait_timeout 默认 31536000)、触发器没删却把新表 drop 造成 ERROR 1146 的失败顺序,以及 --history/--resume 的四个前提与局限。
pt-online-schema-change
MySQL
OnlineDDL
DDL
Percona
触发器
故障恢复
批量 UPDATE 撑大 binlog cache:临时文件、1197 报错与排查顺序
编程
批量 UPDATE 撑大 binlog cache:临时文件、1197 报错与排查顺序
2026-10-19 21:06:02
单个事务的 binlog 事件超过 binlog_cache_size 后会落到 tmpdir 临时文件,磁盘悄悄被吃掉;超过 max_binlog_cache_size 还会报 1197。含状态变量比值读法、tmpdir 排查顺序、按主键分批与 binlog_row_image 的取舍。
MySQL
运维
binlog
事务
Laravel 13.36:长驻 worker 跑过一个写任务后,后面一万个任务的读都压在主库
编程
Laravel 13.36:长驻 worker 跑过一个写任务后,后面一万个任务的读都压在主库
2026-10-19 20:02:53
Laravel 13.36 允许队列 worker 在任务之间清掉粘性数据库连接。讲清 sticky 为什么把长驻 worker 的读一直钉在主库、新开关 Worker::$flushStickyConnections 怎么开、打开后复制延迟与任务依赖的代价,以及判断要不要开的三个核对点。
Laravel
PHP
队列
MySQL
读写分离
幂等防重不止唯一索引:幂等键的四层拦截与三个失效点
编程
幂等防重不止唯一索引:幂等键的四层拦截与三个失效点
2026-10-19 00:04:20
同一个请求被处理两次,问题往往不在业务代码某一行,而在幂等键设计。这篇划清幂等只在写操作上成立,给出键的三种生成方式与粒度、网关/Redis 原子消费/MySQL 唯一索引/状态机条件更新的四层拦截顺序,以及「每次重试重生成键」「先查后写」「去重记录与业务不同事务、TTL 短于重试窗口」三个失效点,附 Go 的 1062 判断与并发验证方法。
幂等防重
幂等键
Redis
MySQL
重复提交
优惠券
ProxySQL 3.0.11/3.1.11/4.0.11:字面量用户变量不再钉死 hostgroup,caching_sha2_password 补齐 RSA 认证
编程
ProxySQL 3.0.11/3.1.11/4.0.11:字面量用户变量不再钉死 hostgroup,caching_sha2_password 补齐 RSA 认证
2026-10-18 21:05:04
ProxySQL 3.0.11 起 SET @request_id=1234 这类字面量赋值不再把会话钉在 hostgroup,多路复用得以保留;3.1.11 让非 TLS 客户端走 RSA 完成 caching_sha2_password 认证。文中给出开关配置、require_x509 与密钥轮换等升级前检查项。
MySQL
中间件
连接池
gh-ost v1.1.11 支持 MariaDB GTID,切换前可先 ANALYZE 影子表
代码
gh-ost v1.1.11 支持 MariaDB GTID,切换前可先 ANALYZE 影子表
2026-10-18 21:04:53
gh-ost v1.1.11 新增 MariaDB 与 MariaDB GTID 支持、可选 StatsD 指标,以及 --analyze-ghost-table-before-cutover:切换前对影子表 ANALYZE,失败则中止换表。含调用示例、binlog 解码跳过无关表与 CGO 关闭的发布二进制说明。
MySQL
在线DDL
工具
MySQL 9.7 外键级联开始执行子表触发器:enable_cascade_triggers 的开关、映射与回滚边界
编程
MySQL 9.7 外键级联开始执行子表触发器:enable_cascade_triggers 的开关、映射与回滚边界
2026-10-17 21:05:31
MySQL 9.7 起外键 CASCADE 可执行子表触发器,需开启 enable_cascade_triggers(默认 OFF)。梳理级联类型与触发器映射、同语句同事务的回滚边界、回写父表与级联表数上限 30,以及 ROW/STATEMENT 复制的差异和上线顺序。
MySQL
触发器
外键
升级踩坑
CAS
Illegal mix of collations(1267/1271):用 COLLATION() 定位比较两侧的真实来源
案例
Illegal mix of collations(1267/1271):用 COLLATION() 定位比较两侧的真实来源
2026-10-17 00:03:36
MySQL/MariaDB 报 Illegal mix of collations(1267/1271)怎么排查:从错误码看两侧 collation 来源,用 COLLATION() 与 information_schema 定位冲突列与连接设置,讲清 MySQL coercibility 与 MariaDB derivation 推导规则、COLLATE 修法的索引代价,以及 uca1400_ai_ci 默认变更带来的新冲突。
collation
排序规则
MySQL
MariaDB
数据库
字符集
运维
MySQL 报 ER_1366 Incorrect string value:从驱动到字段排查连接字符集链
编程
MySQL 报 ER_1366 Incorrect string value:从驱动到字段排查连接字符集链
2026-10-16 00:05:00
存 emoji / 中文报 ER_1366 Incorrect string value、ER_1300、ER_3988 时,问题常在客户端、连接层、服务端对象三处字符集不统一。给出 SHOW VARIABLES 该看的变量、SET NAMES 与 character-set-client-handshake、实例→库→表→字段的修改优先级,以及 PHP/Python/Go/JDBC 驱动侧配置与 latin1 双重编码陷阱。
utf8mb4
MySQL
字符集
乱码
emoji
排障
数据库
collation
pt-online-schema-change 在线改表:1 条触发器硬约束、4 道安全阀与手动 swap 流程
编程
pt-online-schema-change 在线改表:1 条触发器硬约束、4 道安全阀与手动 swap 流程
2026-10-16 00:03:58
pt-online-schema-change 靠触发器把改表期间的增量同步到新表,再用原子 RENAME 换表,从而不锁原表。本文按官方文档梳理它为什么不锁表、外键四种处理方式、主键/触发器/复制/负载四道安全阀,以及 --alter 的硬约束与推荐的 dry-run 到手动 swap 上线流程。
在线改表
pt-online-schema-change
MySQL
OnlineDDL
DDL
Percona
触发器
utf8mb3 转 utf8mb4:767 字节索引上限、191/768 前缀与 row size 8126 的踩坑记录
案例
utf8mb3 转 utf8mb4:767 字节索引上限、191/768 前缀与 row size 8126 的踩坑记录
2026-10-16 00:03:48
从 utf8mb3 转 utf8mb4 时,内容没问题但表结构常被 InnoDB 的字节上限卡住:COMPACT 行格式 767 字节对应 191 字符前缀、DYNAMIC 行格式 3072 字节对应 768 字符,以及 TINYTEXT/VARCHAR 长度、row size 8126、ER_1071/1709/1118 报错与可执行修复 SQL。
utf8mb4
MySQL
字符集
索引
InnoDB
运维
数据库
emoji
MySQL 26.7.0 Innovation 发布:Thread Pool Plugin 进社区版,Group Replication 默认通信栈换成 MYSQL
资讯
MySQL 26.7.0 Innovation 发布:Thread Pool Plugin 进社区版,Group Replication 默认通信栈换成 MYSQL
2026-10-15 20:01:57
MySQL 26.7.0 Innovation 发布:Thread Pool Plugin 进入社区版解决高并发下每连接一线程的调度开销,Group Replication 默认通信栈由 XCOM 换成 MYSQL 并开始弃用 XCom 配置,新增 Change Stream Applier 单写者复制通道;附 InnoDB、后量子加密等改动与版本线选择。
MySQL
数据库
Group
Replication
InnoDB
运维
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
下一页
共 6 页
到第
页
确定