程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
MySQL 相关技术文章(第2页)
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
幂等防重不止唯一索引:幂等键的四层拦截与三个失效点
编程
幂等防重不止唯一索引:幂等键的四层拦截与三个失效点
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
运维
MySQL 排序规则迁移:utf8mb4_0900_ai_ci、89 种 collation 与 5.7 回导报错
案例
MySQL 排序规则迁移:utf8mb4_0900_ai_ci、89 种 collation 与 5.7 回导报错
2026-10-15 01:43:47
MySQL 8.0 把 utf8mb4 默认排序规则从 utf8mb4_general_ci 换成 utf8mb4_0900_ai_ci:拆解 collation 命名后缀、UCA 版本号、89 种 utf8mb4 排序规则从哪来,以及 8.0 建表回导 5.7/5.6 报错、NO PAD 与 PAD SPACE 的差异,给出选型与迁移注意点。
排序规则
collation
MySQL
数据库
字符集
utf8mb4
运维
gh-ost 改表不停写:binlog 追增量,两个连接抢 rename 完成 cut-over
编程
gh-ost 改表不停写:binlog 追增量,两个连接抢 rename 完成 cut-over
2026-10-15 01:39:38
gh-ost 用 binlog 订阅替代触发器做 MySQL 在线改表:幽灵表迁移 + 增量回放,两个连接抢 rename 完成原子 cut-over。含三种运行模式、硬约束(必须有主键、binlog_format=ROW)、关键参数与 dry-run 实操,以及和 pt-osc 在中断恢复、增量同步上的差异。
OnlineDDL
MySQL
gh-ost
DDL
在线改表
binlog
cut-over
数据库
gh
触发器
MySQL 加字段为什么有时秒级、有时锁表:INSTANT / INPLACE / COPY 怎么选
编程
MySQL 加字段为什么有时秒级、有时锁表:INSTANT / INPLACE / COPY 怎么选
2026-10-14 23:35:48
同样一句 ALTER TABLE,加字段秒级完成,改字段类型却可能锁表几小时。本文拆清 INSTANT / INPLACE / COPY 三种算法怎么选、cloud 厂商对在线改类型的补丁与限制,以及大表该用 pt-osc 还是 gh-ost。
字段变更
MySQL
OnlineDDL
表结构变更
DDL
数据库
gh-ost
gh
Go 1.27 标准库加入 uuid:NewV7 时间有序,别再拿 v4 做主键
编程
Go 1.27 标准库加入 uuid:NewV7 时间有序,别再拿 v4 做主键
2026-10-11 21:01:23
Go 1.27 把 uuid 包收进标准库(RFC 9562),无需再依赖 google/uuid。重点讲 NewV7:时间有序,插入 B-tree 索引时落在右侧,避免 v4 随机主键把索引写散、写入吞吐下降的问题,并附 API 对照与同版本其他变化。
Go
uuid
MySQL
数据库
标准库
ant
encoding/json
MPT
encoding/json/v2
ql
js
RSI
UTF-8
格式化
生态
pkg.go.dev
DI
New
类型
代码
Dev
ng
密码
主键
ODS
in
lm
tree
Duration
把数据库 schema 当代码管:Atlas 的声明式与版本化迁移怎么选
编程
把数据库 schema 当代码管:Atlas 的声明式与版本化迁移怎么选
2026-10-11 00:03:47
数据库 schema 靠手写 ALTER TABLE 会漂移、删列没人拦。以 Atlas(ariga/atlas)为例拆解 Schema-as-Code 的两条工作流:声明式(schema apply 定义期望状态、破坏性变更被拒)与版本化(migrate diff/lint/apply 生成可审阅迁移文件),以及 atlas.sum 完整性、CI lint 能拦下的表锁与并发索引问题。<|end▁of▁thinking|>
Schema-as-Code
数据库迁移
Atlas
MySQL
Go
运维
Terra
ble
ql
计算
Base
OTA
声明式
版本
代码
团队
The
Management
ALTER
TABLE
MySQL 9.7.2:LOAD DATA 残留 NULL 状态、POW(NULL) 返回 1 等会真踩到的修复
资讯
MySQL 9.7.2:LOAD DATA 残留 NULL 状态、POW(NULL) 返回 1 等会真踩到的修复
2026-10-10 21:06:02
MySQL 9.7.2 修了一批会直接影响结果的行为 bug:LOAD DATA 给 NOT NULL 列写 NULL 后残留临时 NULL 状态导致同会话 INSERT 报 1263/1048、POW(NULL) 错误返回 1、IN 谓词含 DATE/TIME 常量误匹配、AVG 配合 SQL_BUFFER_RESULT 结果截断,以及 hypergraph optimizer 多处修复。本文按报错与现象给出升级注意点。
MySQL
运维
数据库
MySQL 9
Rue
ql
ascii
MySQL 9.7
Buf
2077
Bug
9.7
18
MySQL 9.7 社区版启用 hypergraph optimizer:默认关闭,sysbench 两个只读场景提升 26%/15%
代码
MySQL 9.7 社区版启用 hypergraph optimizer:默认关闭,sysbench 两个只读场景提升 26%/15%
2026-10-07 21:01:39
MySQL 9.7 LTS 把 hypergraph optimizer 下放到社区版:把 join 当图搜索、支持 bushy plan、nested-loop 与 hash join 做真正基于代价的比较。默认关闭,需 optimizer_switch 或 SET_VAR hint 开启。sysbench 只读场景提升 26%/15%,基数估计不准时经典优化器仍可能更优。
MySQL
数据库
查询优化
Join
性能
哈希
成本
消息
9.7
社区版
MySQL 9.7 LTS 升级注意:innodb_log_writer_threads 默认值按 log_bin 与 CPU 数分档,两个旧变量被移除
编程
MySQL 9.7 LTS 升级注意:innodb_log_writer_threads 默认值按 log_bin 与 CPU 数分档,两个旧变量被移除
2026-10-06 21:02:57
MySQL 9.7 LTS 升级要点:innodb_log_writer_threads 默认值改为按 log_bin 与可用逻辑 CPU 数分档判定;group_replication_allow_local_lower_version_join、replica_parallel_type 被移除,配置残留会让 mysqld 启动失败。附判定表与升级前扫描命令。
MySQL
9.7
InnoDB
升级
Join
MySQL 没有 MERGE/RETURNING:REPLACE、ON DUPLICATE KEY UPDATE、INSERT IGNORE 的坑与选型
编程
MySQL 没有 MERGE/RETURNING:REPLACE、ON DUPLICATE KEY UPDATE、INSERT IGNORE 的坑与选型
2026-10-05 00:05:38
标准 SQL 有 MERGE,MySQL 至今没有,也没有 RETURNING。本文对照 MySQL 三件套 upsert(REPLACE、INSERT ... ON DUPLICATE KEY UPDATE、INSERT IGNORE)的实际语义:REPLACE 触发删除+插入、自增空洞、外键级联与默认值重置;ON DUPLICATE KEY UPDATE 的 affected rows 0/1/2 与 8.0.20 后行别名写法;MariaDB 10.5+ 的 RETURNING 与限制。附选型对照表。
MERGE
RETURNING
MySQL
upsert
ON
DUPLICATE
KEY
UPDATE
REPLACE
INTO
MariaDB
SQL
数据库
MySQL 8.0 的终点是 8.0.46:不支持降级,升级前只有备份这一条退路
资讯
MySQL 8.0 的终点是 8.0.46:不支持降级,升级前只有备份这一条退路
2026-10-04 21:02:38
截至 2026 年 4 月,MySQL 8.0 随 8.0.46 到达 EoL,此后不再有补丁与安全更新。本文讲清 EoL 的含义、8.0 为何不支持降级(唯一退路是恢复升级前备份)、升级须先测后上,以及目标选 8.4 LTS 还是走 26.x 日历版本的 Innovation 线。
MySQL
数据库
升级
EOL
降级
MySQL 社区版 8 月安全更新:3 个组件族受影响,最高 CVSS 8.2,4 条可未认证远程触发
资讯
MySQL 社区版 8 月安全更新:3 个组件族受影响,最高 CVSS 8.2,4 条可未认证远程触发
2026-10-02 21:03:49
Oracle 2026 年 8 月 MySQL 社区版安全更新:8 条、3 个组件族、4 条可未认证远程触发,最高 CVSS 8.2,涉及 MySQL Cluster(NDB Operator)、MySQL Shell(libssh)、Connector/ODBC。本文列清受影响版本范围,并补上 7 月 X Plugin 可被接管(CVE-2026-60316)与 Server: Optimizer 可打崩条目,附自查与打补丁思路。
MySQL
安全
数据库
运维
CVE
日历
MySQL 2026 年 7 月 CPU:8.4 与 9.7 社区版受影响,X Plugin 可被未认证请求打崩
资讯
MySQL 2026 年 7 月 CPU:8.4 与 9.7 社区版受影响,X Plugin 可被未认证请求打崩
2026-10-01 21:02:26
Oracle 2026 年 7 月 CPU 里 MySQL 社区版受影响版本与重点 CVE(X Plugin 未认证 DoS、Group Replication 本地接管、Router HTTP DoS),修复版本 8.4.11+/9.7.2+,以及无法立即升级时关闭 mysqlx 与收回 performance_schema 权限的缓解做法。
MySQL
安全公告
CVE
X
Plugin
Group
Replication
跳板机
账号
9.7
MySQL 8.4 LTS 单节点、主从、双主搭建:8.0 旧命令在 8.4 会直接报语法错误
编程
MySQL 8.4 LTS 单节点、主从、双主搭建:8.0 旧命令在 8.4 会直接报语法错误
2026-09-30 21:32:03
基于 mysql-8.4.11 LTS 从零搭单节点、主从、双主:整理 8.0→8.4 的语句/参数/列名改名对照(SHOW BINARY LOG STATUS、CHANGE REPLICATION SOURCE TO、Replica_* 等),含 caching_sha2_password 复制账号的 RSA 公钥坑、GTID 复制、半同步插件改名、Asynchronous Connection Failover 与 MHA/MMM 不可用的选型结论。
MySQL
主从复制
GTID
半同步复制
InnoDB
数据库运维
MySQL 9.7.0 两处 InnoDB 修复:统计为空时丢索引路径,并行扫描回退踩断言
资讯
MySQL 9.7.0 两处 InnoDB 修复:统计为空时丢索引路径,并行扫描回退踩断言
2026-09-30 21:03:31
MySQL 9.7.0(LTS) 两处 InnoDB 修复的故障特征与排查:dict_stats_analyze_index() 在空索引统计被并发读到或出错致空统计时丢弃最优索引访问路径(Bug #33472935),并行扫描线程创建失败回退单线程触发 row0pread.h:306 断言(Bug #38325137),附 information_schema.STATISTICS/ANALYZE TABLE/error log 排查手法。
MySQL
数据库
性能
9.7
MySQL 9.7.0 LTS:社区版拿到 Hypergraph Optimizer 与 JSON Duality Views DML
代码
MySQL 9.7.0 LTS:社区版拿到 Hypergraph Optimizer 与 JSON Duality Views DML
2026-09-28 21:05:11
MySQL 9.7.0 LTS 把多项原企业版能力下放到社区版:Hypergraph Optimizer 可用 optimizer_switch 在各作用域开启、JSON Duality Views 支持 insert/update/delete、复制可观测性与 PKBDF2 存储格式等,附开启命令与适用判断,并列出仍属企业版的 Dynamic Data Masking。
MySQL
数据库
优化器
社区版
LTS
9.7
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
下一页
共 5 页
到第
页
确定