MySQL 5.7 到 8.0 差异详解

MySQL 5.7 到 8.0 差异详解

本文系统梳理 MySQL 5.7 与 8.0 之间的架构、功能、配置与兼容性差异,供迁移评估、升级实施与日常开发参考。
官方权威来源:Changes in MySQL 8.0

建议阅读顺序:先看 一、总览十一、升级流程,再按需查阅各专题章节。


一、总览

1.1 为什么要从 5.7 升到 8.0

维度 5.7 现状 8.0 收益
生命周期 2023-10 已 EOL,无安全补丁 LTS 长期支持
架构 元数据分散在 .frm、非事务系统表 统一事务型数据字典,DDL 原子化
SQL 能力 无 CTE、无窗口函数 CTE、窗口函数、CHECK 约束、函数索引等
性能 查询缓存(已过时) 无查询缓存,优化器/索引能力更强
安全 mysql_native_password 为主 caching_sha2_password、角色、密码策略
字符集 默认 latin1 默认 utf8mb4,原生支持 emoji 等

MySQL 8.0 包含 300+ 项新特性官方完整列表)。下文按「架构 → 功能 → 配置 → 兼容性 → 升级」组织。

1.2 差异分类速查

┌─────────────────────────────────────────────────────────────┐
│                    5.7 → 8.0 差异全景                        │
├──────────────┬──────────────┬──────────────┬────────────────┤
│  架构级变更   │  功能增强     │  默认值变更   │  不兼容/移除    │
├──────────────┼──────────────┼──────────────┼────────────────┤
│ 事务数据字典  │ CTE/窗口函数  │ utf8mb4 默认  │ 查询缓存移除    │
│ 原子 DDL     │ 角色/密码策略 │ binlog 默认开 │ GRANT 建用户移除│
│ undo 表空间   │ 不可见索引    │ autoinc 模式  │ 分区+非InnoDB   │
│ 无 mysql_upgrade│ JSON_TABLE │ 复制元数据TABLE│ 多种 SQL 模式   │
└──────────────┴──────────────┴──────────────┴────────────────┘

二、架构级变更

2.1 事务型数据字典(Transactional Data Dictionary)

5.7:表结构元数据存储在:

  • 每个表对应的 .frm 文件
  • mysql 库中的 MyISAM 系统表
  • InnoDB 自有数据字典(与 Server 层可能不一致)

8.0:所有字典数据统一存入 InnoDB 事务表,位于 mysql.ibd 等表空间:

  • 消除 Server 层与 InnoDB 层「双字典」不一致问题
  • DDL 与字典更新在同一事务中完成 → 原子 DDL
  • .frm.TRG.TRN.par 等文件不再使用
  • mysql 系统库中的 grant 表也改为 InnoDB

对迁移的影响

  • 升级前必须跑 Upgrade Checker(见 十一节
  • 不支持从 8.0 官方降级回 5.7(需逻辑备份恢复)
  • INFORMATION_SCHEMA 底层改为基于数据字典的视图;部分 INNODB_SYS_* 视图重命名(见 7.1 节

2.2 原子 DDL(Atomic DDL)

8.0 将 DDL 涉及的数据字典更新、存储引擎操作、binlog 写入合并为单个事务

-- 8.0:CREATE TABLE ... SELECT 在崩溃后不会留下「半拉子」表
CREATE TABLE new_orders AS SELECT * FROM orders WHERE status = 'pending';

5.7 中部分 DDL 在崩溃时可能导致字典与文件不一致,8.0 显著改善。

2.3 升级机制变化:不再需要 mysql_upgrade

5.7 8.0
升级后手动执行 mysql_upgrade 服务器首次启动时自动升级系统表与字典
存在 mysql_upgrade_info 文件 该机制已废弃

mysql_upgrade 客户端在 8.0 中已废弃,能力内嵌到 mysqld 启动流程。

2.4 初始化方式变化

5.7 8.0
mysql_install_db 移除
mysqld --initialize--initialize-insecure

三、认证与安全

3.1 默认认证插件:caching_sha2_password

5.7 默认mysql_native_password
8.0 默认caching_sha2_password(SHA-256 哈希 + 缓存,安全性更高)

# 8.0 新安装 / 升级后新建用户的默认行为
[mysqld]
default_authentication_plugin=caching_sha2_password   # 8.0 默认

重要:从 5.7 就地升级时,已有账户的认证插件不变;只有新创建的账户才用新插件。

兼容性问题

旧客户端/驱动连接 8.0 时常见报错:

Authentication plugin 'caching_sha2_password' is not supported

解决方案(按优先级)

  1. 推荐:升级客户端/Connector 到支持 caching_sha2_password 的版本
  2. 临时:在 my.cnf 中改回旧插件(不推荐长期使用)
[mysqld]
default_authentication_plugin=mysql_native_password
  1. 单用户切换
ALTER USER 'app_user'@'%'
  IDENTIFIED WITH mysql_native_password BY 'your_password';

各 Connector 最低版本参考

组件 支持 caching_sha2_password 的最低版本
libmysqlclient 8.0.4+ 或 5.7.23+
Connector/J 8.0.9+
Connector/NET 8.0.10+
Connector/C++ 1.1.11+ 或 8.0.7+
PHP ext/mysqli / PDO_MySQL 需 mysqlnd 支持;老版本 PHP 可能需改回 native

caching_sha2_password 在非安全连接上可能需要 RSA 密钥交换或 TLS;8.0 客户端默认倾向使用 SSL。

3.2 角色(Roles)

8.0 新增角色机制,用于批量管理权限:

CREATE ROLE 'app_read', 'app_write';

GRANT SELECT ON mydb.* TO 'app_read';
GRANT INSERT, UPDATE, DELETE ON mydb.* TO 'app_write';

CREATE USER 'dev1'@'%' IDENTIFIED BY 'secret';
GRANT 'app_read' TO 'dev1'@'%';
SET DEFAULT ROLE ALL TO 'dev1'@'%';

5.7 无原生角色,权限只能逐用户 GRANT

3.3 密码策略增强

  • validate_password 插件重构为基于组件架构(插件形式仍可用但已废弃)
  • 密码历史:可限制不能重复使用旧密码
  • 账户锁定:连续登录失败可临时锁定账户
  • 默认 validate_password_check_user_name=ON(密码不能等于用户名)

3.4 已移除的账户管理写法

5.7 可用 8.0 状态 替代写法
GRANT ... ON *.* TO user IDENTIFIED BY 'pwd' 移除 CREATE USER + GRANT
GRANT 修改 SSL/资源限制等非权限属性 移除 CREATE USER / ALTER USER
IDENTIFIED BY PASSWORD 'hash' 移除 IDENTIFIED WITH auth_plugin AS 'hash'
PASSWORD() 函数 移除
old_passwords 变量 移除
NO_AUTO_CREATE_USER SQL 模式 移除 sql_mode 和 dump 中删除

升级阻塞项:若 my.cnfsql_modeNO_AUTO_CREATE_USER8.0 将无法启动

-- 检查并清理
SELECT @@GLOBAL.sql_mode;
-- 从配置文件中移除 NO_AUTO_CREATE_USER

3.5 其他安全变更

  • MYSQL_PWD 环境变量传密码 → 废弃
  • secure_auth--secure-auth移除(8.0 始终使用安全认证)
  • --ssl / --ssl-verify-server-cert 客户端选项 → 移除,改用 --ssl-mode
# 5.7
mysql --ssl=1 --ssl-verify-server-cert

# 8.0
mysql --ssl-mode=VERIFY_IDENTITY
# 或 REQUIRED / DISABLED

四、字符集与排序规则

4.1 默认值变更

变量 5.7 默认 8.0 默认
character_set_server latin1 utf8mb4
collation_server latin1_swedish_ci utf8mb4_0900_ai_ci

注意

  • 升级不会自动修改已有库/表/列的字符集
  • 新建 schema 在未显式指定时,8.0 默认用 utf8mb4
  • 主从复制场景:建议升级前先把 8.0 侧默认字符集设回 5.7 使用的值,升级完成后再切到 utf8mb4
# 若需保持 5.7 行为(临时)
[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci

# 推荐最终目标
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_0900_ai_ci

4.2 utf8 与 utf8mb4

  • MySQL 中 utf8 实际是 utf8mb3(最多 3 字节),不支持 emoji
  • 8.0 中 utf8mb3 已废弃,应统一使用 utf8mb4
  • 8.0 新增大量 Unicode 9.0 排序规则(如 utf8mb4_0900_ai_ci

4.3 字符集校验更严格

8.0 对字符集允许的字符检查比 5.7 更严。升级前需检查表/列/索引注释中是否含有当前字符集未定义的字符,否则升级可能失败。


五、SQL 与查询能力

5.1 公共表表达式(CTE)

8.0 支持 WITH 子句,含递归 CTE

-- 非递归 CTE
WITH regional_sales AS (
  SELECT region, SUM(amount) AS total
  FROM orders
  GROUP BY region
)
SELECT * FROM regional_sales WHERE total > 10000;

-- 递归 CTE:组织树
WITH RECURSIVE emp_hierarchy AS (
  SELECT id, name, manager_id, 1 AS depth
  FROM employees WHERE manager_id IS NULL
  UNION ALL
  SELECT e.id, e.name, e.manager_id, h.depth + 1
  FROM employees e
  JOIN emp_hierarchy h ON e.manager_id = h.id
)
SELECT * FROM emp_hierarchy;

5.7 只能用临时表或嵌套子查询模拟,无法原生递归。

5.2 窗口函数(Window Functions)

8.0 支持 OVER() 窗口分析,无需 GROUP BY 折叠行:

SELECT
  employee_id,
  department,
  salary,
  ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) AS rn,
  AVG(salary) OVER (PARTITION BY department) AS dept_avg,
  salary - AVG(salary) OVER (PARTITION BY department) AS diff_from_avg,
  LAG(salary, 1) OVER (PARTITION BY department ORDER BY hire_date) AS prev_salary
FROM employees;

专用窗口函数RANK, DENSE_RANK, PERCENT_RANK, CUME_DIST, NTILE, ROW_NUMBER, FIRST_VALUE, LAST_VALUE, NTH_VALUE, LEAD, LAG

聚合函数也可作窗口函数SUM, AVG, COUNT, MIN, MAX 等 + OVER()

5.3 其他重要 SQL 增强

特性 5.7 8.0
CHECK 约束 解析但不强制(InnoDB 忽略) 强制生效
表达式作 DEFAULT 不支持 支持(含 BLOB/TEXT/JSON)
LATERAL 派生表 不支持 支持(8.0.14+)
GROUP BY + ORDER BY/DISTINCT + ROLLUP 有限 增强
降序索引 不支持 CREATE INDEX ... (col DESC)
函数索引 不支持 支持(基于表达式)
不可见索引 不支持 CREATE INDEX ... INVISIBLE
Index Skip Scan 不支持 优化器支持
FOR UPDATE / FOR SHARE + NOWAIT / SKIP LOCKED 不支持 支持
VALUES 行构造器 不支持 VALUES ROW(...), ROW(...)
正则函数 REGEXP 运算符 + REGEXP_LIKE/INSTR/REPLACE/SUBSTR
INTERSECT / EXCEPT 不支持 8.0.31+ 支持

CHECK 约束示例

CREATE TABLE products (
  id INT PRIMARY KEY,
  price DECIMAL(10,2) CHECK (price > 0),
  status ENUM('active','archived') DEFAULT 'active',
  CONSTRAINT chk_status CHECK (status IN ('active', 'archived'))
);

不可见索引(测试删索引影响)

ALTER TABLE orders ALTER INDEX idx_customer INVISIBLE;
-- 观察查询性能后再决定 DROP
ALTER TABLE orders ALTER INDEX idx_customer VISIBLE;

5.4 SQL 行为变更(易踩坑)

变更 说明 应对
GROUP BY 不再隐式排序 8.0.13+ 移除 GROUP BY ... ASC/DESC 显式写 ORDER BY
N 不再是 NULL 别名 仅 LOAD/EXPORT 中 N 表 NULL 检查依赖 N 的 SQL
新保留字 部分词在 8.0 成为保留字 用反引号引用标识符
外键命名 8.0.0–8.0.15 行为变化,8.0.16 恢复生成名 勿依赖中间版本行为
CONVERT() 行为 8.0.28 修复 BINARY→字符集非法转换 升级前检查生成列索引

5.5 默认 SQL 模式

8.0 默认 sql_mode

ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE,
NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION

与 5.7 相比更严格(如除零报错、GROUP BY 非聚合列限制)。应用若依赖宽松模式,需在连接层或配置中显式设置,但不建议长期关闭 ONLY_FULL_GROUP_BY


六、JSON 增强

能力 5.7 8.0
JSON_TABLE 将 JSON 数组展开为关系行
JSON_MERGE_PATCH 标准 JSON Merge Patch
JSON_ARRAYAGG / JSON_OBJECTAGG 聚合 + 窗口
JSON_VALUE / JSON_OVERLAPS 新增
MEMBER OF 运算符 判断数组成员
JSON 部分更新 全量重写 原地更新(InnoDB)
JSON Schema 校验 CHECK (JSON_SCHEMA_VALID(...))
-- JSON_TABLE 示例
SELECT j.name, j.qty
FROM orders o,
JSON_TABLE(o.items, '$[*]' COLUMNS (
  name VARCHAR(50) PATH '$.name',
  qty  INT         PATH '$.qty'
)) AS j;

七、InnoDB 存储引擎

7.1 INFORMATION_SCHEMA 视图重命名

5.7 名称 8.0 名称
INNODB_SYS_COLUMNS INNODB_COLUMNS
INNODB_SYS_INDEXES INNODB_INDEXES
INNODB_SYS_TABLES INNODB_TABLES
INNODB_SYS_TABLESPACES INNODB_TABLESPACES
(其余 INNODB_SYS_* 类似)

监控脚本若引用旧视图名,升级后需修改。

7.2 Undo 表空间

5.7 8.0
Undo log 可在系统表空间 必须在独立 undo 表空间
innodb_undo_tablespaces=0 默认 2,最小值 2
默认 innodb_undo_log_truncate=ON

升级要求:5.7 → 8.0 前必须 slow shutdowninnodb_fast_shutdown=0),确保 undo 为空,升级时会移除旧 undo 表空间并创建新的。

7.3 其他 InnoDB 变更

  • 临时表:统一放在共享临时表空间 ibtmp1
  • 系统表空间mysql 库与数据字典合并为 mysql.ibd
  • AUTO_INCREMENT 持久化:重启后 counter 不丢失(写 redo + 系统表)
  • innodb_autoinc_lock_mode:默认 1(连续) → 2(交错);与语句复制不兼容,若仍用 statement-based replication 需改回 1
  • innodb_flush_neighbors:默认 10(SSD 场景);机械硬盘可改回 1
  • innodb_dedicated_server:可自动按内存配置 buffer pool 等
  • Instant DDLADD COLUMNRENAME COLUMN 等可 instant 算法(减少锁表)
  • Clone Plugin:物理热克隆实例(8.0.17+)
  • Redo Log:8.0.30+ 用 innodb_redo_log_capacity 管理,默认 32 个文件于 #innodb_redo 目录
  • 索引长度:5.7.35 前冗余/compact 行格式索引上限 767 字节问题,升级 8.0 前需处理

7.4 压缩表与 zlib 升级

8.0 bundled zlib 1.2.11,compressBound() 估算略大。接近最大行长的 ROW_FORMAT=COMPRESSED 表,在 8.0 上 CREATE/INSERT/UPDATE 可能失败,需提前在测试环境验证。


八、复制与高可用

8.1 复制默认值变更

参数 5.7 默认 8.0 默认
log_bin OFF ON
server_id 0 1
log_slave_updates OFF ON
expire_logs_days 0 30
master_info_repository FILE TABLE
relay_log_info_repository FILE TABLE
transaction_write_set_extraction OFF XXHASH64
slave_rows_search_algorithms INDEX_SCAN,TABLE_SCAN INDEX_SCAN,HASH_SCAN

复制元数据存 InnoDB 表 → 崩溃安全复制,不再依赖 relay-log.info / master.info 文件(相关选项已废弃)。

8.2 Group Replication

8.0 对 Group Replication 有一系列默认值优化(如 group_replication_autorejoin_tries=3)。若使用 GR,8.0 是推荐基线版本。

8.3 复制兼容性注意

  • 5.7 → 8.0 主从:注意 binlog 中是否含已移除语法(GRANT 建用户、NO_AUTO_CREATE_USER 等)
  • caching_sha2_password 复制账户需 SSL 或 RSA 密钥
  • 8.0.13+ 对运行时切换 binlog_format 有更严限制(有临时表时不可切)

8.4 术语变更(8.0.22+)

文档与部分语法中 Master/Slave 逐步改为 Source/Replica(如 CHANGE REPLICATION SOURCE TO),旧语法仍兼容一段时间。


九、已移除功能(必须处理)

9.1 查询缓存(Query Cache)— 影响最大之一

8.0 完全移除查询缓存及相关变量:

移除:query_cache_type, query_cache_size, query_cache_limit, query_cache_min_res_unit
移除:FLUSH QUERY CACHE, RESET QUERY CACHE
移除:Qcache_* 状态变量

若 5.7 配置中 query_cache_type=1,升级前删除相关配置。性能优化应依赖 InnoDB Buffer Pool + 合理索引,而非查询缓存。

9.2 分区 + 非 InnoDB/NDB 引擎

8.0 不再提供通用分区处理器,仅 InnoDBNDB 支持原生分区。

-- 升级前检查
SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, CREATE_OPTIONS
FROM information_schema.TABLES
WHERE CREATE_OPTIONS LIKE '%partitioned%'
  AND ENGINE NOT IN ('InnoDB', 'NDB');

需先 转为 InnoDB移除分区,否则升级后表不可用。

9.3 其他移除项摘要

类别 移除内容
变量重命名 tx_isolationtransaction_isolationtx_read_onlytransaction_read_only
文件相关 sync_frm(.frm 已废弃)
日志 log_warnings → 用 log_error_verbosity
工具 mysql_install_dbmysql_pluginresolveip
SQL 模式 DB2, MAXDB, MSSQL, ORACLE, POSTGRESQL, MYSQL323, MYSQL40
空间函数 ST_/MBR 前缀的旧函数名
复制 innodb_locks_unsafe_for_binlog
GIS 部分旧空间函数命名空间变更

9.4 sql_log_bin 作用域

@@GLOBAL.sql_log_bin 移除,仅保留 SESSION 作用域。依赖全局关闭 binlog 的应用需调整。


十、废弃功能(仍可用,勿新用)

项目 说明
utf8mb3 / utf8 改用 utf8mb4
sha256_password caching_sha2_password 取代
validate_password 插件形式 改用组件
FLOAT/DOUBLEAUTO_INCREMENT 改用整型
FLOAT(M,D) / DOUBLE(M,D) 非标准语法 废弃
&& || ! 作为 AND/OR/NOT 改用标准 SQL 运算符
mysql_upgrade 能力已内嵌
PAD_CHAR_TO_FULL_LENGTH SQL 模式 废弃
AUTO_INCREMENT on FLOAT/DOUBLE 废弃

十一、升级流程与检查清单

11.1 支持的路径

MySQL 5.7 GA  ──就地升级──▶  MySQL 8.0 GA
                │
                └──逻辑迁移(mysqldump / mydumper / 复制切换)──▶  8.0 新实例
  • 仅支持 GA → GA 升级,不支持从 5.7 非 GA 直接升
  • 不支持官方就地降级 8.0 → 5.7

11.2 Upgrade Checker(必做)

使用 MySQL Shell 在升级前扫描不兼容项:

mysqlsh root@localhost:3306 -- util checkForServerUpgrade \
  --target-version=8.0.40 \
  --config-path=/etc/my.cnf

输出分 Error(必须修复)和 Warning(建议修复)。常见 Error:

  • 非 InnoDB/NDB 的分区表
  • sql_mode 含已移除模式
  • 使用了已移除的空间函数
  • 字符集注释非法字符

11.3 推荐升级步骤

1. 全量备份(物理 + 逻辑)
2. 在 staging 复现生产配置,跑 Upgrade Checker
3. 修复所有 Error;评估 Warning
4. 5.7 上执行 slow shutdown:
      SET GLOBAL innodb_fast_shutdown = 0;
      -- 停库
5. 替换二进制 / 包,保留数据目录
6. 首次启动 8.0(自动升级字典,可能较慢)
7. 跑 mysqlcheck --all-databases
8. 验证应用连接、核心 SQL、复制链路
9. 性能基准对比(关键慢查询)

11.4 升级前检查清单


十二、服务器默认值对照表

12.1 服务器级

参数 5.7 默认 8.0 默认 备注
character_set_server latin1 utf8mb4 仅影响新建 schema
collation_server latin1_swedish_ci utf8mb4_0900_ai_ci
explicit_defaults_for_timestamp OFF ON TIMESTAMP 行为更贴近标准
max_allowed_packet 4MB 64MB
event_scheduler OFF ON
local_infile ON OFF 安全加固
table_open_cache 2000 4000
log_error_verbosity 3 2 错误日志默认更少 Notes
back_log 50+max_conn/5 max_connections

12.2 InnoDB

参数 5.7 默认 8.0 默认 备注
innodb_undo_tablespaces 0 2 不可回退
innodb_undo_log_truncate OFF ON
innodb_autoinc_lock_mode 1 2 语句复制需改回 1
innodb_flush_neighbors 1 0 HDD 可改回 1
innodb_max_dirty_pages_pct 75 90
innodb_max_dirty_pages_pct_lwm 0 10

12.3 复制

8.1 节


十三、应用与驱动适配

13.1 JDBC(Connector/J)

<!-- pom.xml:使用 8.0.x 驱动 -->
<dependency>
  <groupId>com.mysql</groupId>
  <artifactId>mysql-connector-j</artifactId>
  <version>8.0.33</version>
</dependency>
# application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8mb4
# 若仍用 mysql_native_password:
# spring.datasource.url=...&defaultAuthenticationPlugin=com.mysql.cj.protocol.a.authentication.MysqlNativePasswordPlugin

13.2 连接池

  • HikariCP / Druid 等需使用 8.0 兼容的 MySQL 驱动
  • 注意 serverTimezone(8.0 驱动默认更严格)

13.3 ORM 框架

  • Hibernate / MyBatis:一般无大改,注意方言与 sql_mode
  • Flyway / Liquibase:迁移脚本中避免已移除语法

十四、性能与运维

14.1 预期性能变化

  • 查询缓存移除:读多且重复查询场景可能需应用层缓存(Redis 等)
  • 优化器增强:histograms、index skip scan、更好的 cost model
  • EXPLAIN ANALYZE(8.0.18+):实际执行统计
  • Resource Groups:将线程绑定到 CPU 资源组

14.2 持久化配置

-- 8.0:重启后仍生效,无需改 my.cnf
SET PERSIST max_connections = 500;
SET PERSIST_ONLY slow_query_log = ON;  -- 仅写入 mysqld-auto.cnf,不立即生效

14.3 备份锁

-- 8.0:在线备份期间允许 DML,阻止 DDL
LOCK INSTANCE FOR BACKUP;
-- ... 备份 ...
UNLOCK INSTANCE;

BACKUP_ADMIN 权限。

14.4 表加密

default_table_encryption 可全局默认加密新表;table_encryption_privilege_check 强制检查。


十五、常见问题 FAQ

Q1:升级后应用连不上数据库?

优先查认证插件与驱动版本。临时方案:default_authentication_plugin=mysql_native_password 或对应用用户 ALTER USER ... mysql_native_password

Q2:升级后中文乱码?

升级不改变已有表字符集。检查连接串 characterEncoding、表实际 charset,以及是否误用 utf8(utf8mb3)。

Q3:GROUP BY 报错 ONLY_FULL_GROUP_BY?

8.0 默认开启。修正 SQL(SELECT 列都在 GROUP BY 或聚合中),或会话级调整(不推荐生产长期关闭)。

Q4:能否 8.0 降回 5.7?

官方不支持就地降级。只能用 5.7 时代逻辑备份恢复,或从 5.7 replica 重新切换。

Q5:Docker 镜像怎么选?

mysql:5.7   # EOL,仅遗留系统
mysql:8.0   # 推荐 LTS 目标
mysql:8.4   # 新 LTS 线

Q6:分区表用的 MyISAM 怎么办?

ALTER TABLE t ENGINE=InnoDB;  -- 或移除分区

十六、参考资料

资源 链接
8.0 变更详情 https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html
8.0 新特性总览 https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
新特性完整列表 https://dev.mysql.com/blog-archive/the-complete-list-of-new-features-in-mysql-8-0/
Upgrade Checker https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-upgrade.html
升级最佳实践 https://dev.mysql.com/doc/refman/8.0/en/upgrade-best-practices.html
已移除特性 https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals

posted @ 2026-06-26 15:32  一个老码农  阅读(24)  评论(0)    收藏  举报