跳到主要内容

参考资料

本篇收拢系列里引用的官方文档和社区资源。遇到「参数行为对不上」「报错看不懂」「复制不动了」的情况,按这里的顺序翻,比搜索引擎翻半天快。

官方入口​

  • MySQL 官网:所有官方资源的起点,下载、文档、博客、认证都在这里,遇到版本相关的疑问优先从这里进。
  • MySQL 8.0 参考手册:唯一权威口径,参数默认值、语法、权限、错误码都以它为准,中文资料对不上时以英文原版为准。
  • MySQL 8.4 参考手册:新的 LTS 版本手册,8.4 禁用了一批旧特性(mysql_native_password 默认关闭等),升级前必读「What Is New」和「Deprecated and Removed」。
  • MySQL 下载页:各平台安装包、Docker 镜像说明、APT/YUM 源配置都在这一页。
  • Release Notes 索引:每个小版本修了什么 bug、改了什么行为,升级前扫一遍能避掉很多「升级后突然坏了」。
  • MySQL 错误码手册:1040、1205、1213 这类错误码的官方解释,比看博客猜准。
  • MySQL Server Blog:Oracle 官方团队的技术博客,新特性解读和版本发布说明质量很高。
文档的读法

查参数先看「Reference Manual → Server Administration → Server System Variables」,那里有默认值、作用域(全局/会话)、是否动态可改、单位;查语法看对应语句章节。不要背参数,知道去哪查就行。

复制与高可用​

  • 复制(Replication)总览:复制原理、线程模型、各复制模式的官方说明,第 6 篇的原理部分基本来自这里。
  • GTID 复制:GTID 的生命周期、gtid_purged 的语义、在线切换步骤。
  • 组复制(Group Replication):MGR 的成员管理、单主/多主模式、流控参数和限制条件。
  • 半同步复制:8.0.26 之后插件名改成 semisync_source / semisync_replica,老教程的插件名会装不上。
  • Orchestrator 文档:复制拓扑探测与自动切换,配置项和故障检测逻辑讲得很细。
  • ProxySQL 文档:读写分离、连接池、查询规则的配置手册。

备份与恢复​

  • mysqldump 文档:--single-transaction、--source-data(原 --master-data)等参数逐条解释。
  • mysqlbinlog 文档:按时间/位点解析 binlog,做时间点恢复(PITR)就靠它。
  • Percona XtraBackup 文档:物理热备的完整流程,增量备份、--prepare、部分恢复都有示例。
  • Percona Toolkit 文档:pt-query-digest(慢查询分析)、pt-heartbeat(复制延迟)、pt-table-checksum(主从校验)、pt-osc(在线 DDL)都在这里。
  • gh-ost:GitHub 出品的在线 DDL 工具,基于 binlog 追增量,对大表比 pt-osc 更友好。

监控与诊断​

  • performance_schema 文档:events_statements_summary_by_digest、data_locks 等表的字段说明,自己写诊断 SQL 时必查。
  • sys schema 文档:把 performance_schema 包装成人话视图,sys.statement_analysis、sys.innodb_lock_waits 用起来省事。
  • mysqld_exporter:MySQL 的 Prometheus 采集器,collector 开关和权限要求写在 README 里。
  • Prometheus 官方文档:PromQL、抓取配置、告警规则的权威说明。
  • Prometheus 核心概念与架构:本站的 Prometheus 入门篇,理解拉模型和标签模型后再看 MySQL 指标会顺很多。

社区与博客​

  • Percona 博客:社区里最值得长期订阅的 MySQL 内容源,故障复盘、参数调优、版本对比写得扎实,很多坑别人已经踩过。
  • Planet MySQL:聚合了各路 MySQL 博客的入口,想找某个具体问题的实践文章可以从这里翻。
  • MySQL Community 论坛:官方社区论坛,复现步骤写清楚的情况下回答质量不错。
  • DBA Stack Exchange:带 mysql 标签的问答,执行计划和锁的问题常有高质量回答。
  • awesome-mysql:社区维护的工具与资源清单,备份、监控、高可用方案一站收齐。

版本与升级​

  • MySQL 升级手册:原地升级(in-place)和逻辑升级(dump 再导入)两条路的完整步骤,跨大版本必须按它走。
  • MySQL Shell 升级检查器:util.checkForServerUpgrade() 能在升级前扫出废弃语法、保留字冲突、字符集问题,比升完再炸好。
  • MySQL 版本策略:LTS 与 Innovation 两条发布线的区别,决定你该选 8.0、8.4 还是 9.x。
  • MySQL 8.0 变化总览(What Is New):8.0 相对 5.7 的变化清单,含查询缓存移除、默认字符集与认证插件变更,老系统迁移前对照自查。
升级前的固定动作
  1. 读目标版本的 Release Notes 和废弃清单;
  2. 跑 util.checkForServerUpgrade();
  3. 在预发环境用真实数据量演练一次,记录耗时;
  4. 升级前做全备 + binlog 归档,并确认回滚方案。

四步里最容易被跳过的是第 3 步,也是最容易出事的。

安全与加固​

  • MySQL 安全指南:账号管理、权限模型、SSL/TLS 配置、审计插件(audit_log)的官方说明。
  • 密码策略组件:validate_password 的强度等级和参数,生产环境别关。
  • CIS MySQL Benchmark:社区公认的加固基线,逐条对应到具体配置项,做等保/合规时常用。
  • MySQL 企业版审计:需要留存 SQL 审计日志时看这个;社区版可以用 MariaDB Audit Plugin 或代理层审计替代。
最小权限是底线

官网安全章节反复强调的一点:应用账号只给业务库的 DML 权限,绝不给 GRANT OPTION、FILE、SUPER。FILE 权限可以读服务器任意文件,SUPER 能改全局变量和 kill 任何连接,这两个是提权的关键跳板。

客户端与工具​

  • MySQL Shell:官方的新一代命令行工具,支持 JS/Python 脚本、并行导入导出、升级检查,替代 mysql 客户端做批量运维很顺手。
  • MySQL Workbench:官方图形客户端,建模、ER 图、性能面板都有,适合本地开发和临时排查。
  • DBeaver:开源通用数据库客户端,跨 MySQL/PostgreSQL/Redis 都能连,团队里统一工具时省事。
  • mycli:带语法高亮和自动补全的 MySQL 命令行,交互体验比原生 mysql 好很多。
  • Percona Toolkit 安装说明:Ubuntu 上加 Percona 源后 apt install percona-toolkit 即可,第 7 篇的 pt-query-digest 依赖它。

云上 MySQL​

云上排查的第一原则

云数据库的很多「故障」其实是平台侧行为:主备切换、备份窗口、参数模板未生效、连接数被规格限制。排查时先看云监控和事件中心,再去查 SQL——方向搞反了会白忙一场。

症状对照:该翻哪一份​

排障时最耗时间的不是解决问题,是不知道该信谁。下面这张表按「现象 → 首选资料」整理,照着翻能少走弯路:

现象先看再看
报错码不认识(1040/1205/1213)官方错误码手册第 8 篇对应故障章节
参数行为跟预期不一致8.0 参考手册的系统变量章节Release Notes 确认版本变更
复制断了、GTID 对不上复制手册 + GTID 章节主从状态字段说明
慢查询优化没头绪执行计划章节(EXPLAIN)Percona 博客的案例文章
备份恢复失败XtraBackup 文档 / mysqldump 文档第 5 篇恢复演练步骤
想监控但不知道采什么mysqld_exporter README第 7 篇核心指标
云上实例行为异常云厂商 RDS 文档云监控与事件中心
升级后功能报错废弃特性清单升级检查器输出
资料的可信度排序

官方手册 > 官方博客 / Release Notes > Percona 等厂商博客 > 个人博客 > 论坛问答。不是后面几类不能用,而是冲突时以前面的为准;尤其参数默认值这种东西,各版本都在变,只有手册写的是当前版本的事实。

进阶读物​

  • 《高性能 MySQL》(第 4 版):偏架构与调优,索引设计、复制、分库分表几章值得反复看。
  • 《MySQL 技术内幕:InnoDB 存储引擎》:讲清 Buffer Pool、B+ 树、事务和锁的底层实现,配合第 1 篇一起看效果最好。
  • MySQL 8.0 新特性系列(官方博客):数据字典、原子 DDL、直方图、降序索引这些 8.0 变化的背景。
注意资料的版本时效

MySQL 8.0 改动很大:查询缓存被删、默认字符集变 utf8mb4、默认认证插件变 caching_sha2_password、CHANGE MASTER 语法被 CHANGE REPLICATION SOURCE 取代。看到 5.7 时代的教程先确认版本,尤其是 my.cnf 参数名和复制命令,照抄很容易报错。

排查问题的查找顺序
  1. 先看错误码,确定问题类别(官方错误码手册);
  2. 再查对应语句/参数的官方文档,确认行为不是 bug;
  3. 然后看 Release Notes,确认是不是版本变更导致;
  4. 最后再去社区博客找实践案例,对照自己的版本和场景。

按这个顺序,大部分「疑难杂症」在第二步就能定位。