Skip to content

TDSQL 版本兼容性矩阵

TDSQL 版本命名规则

版本号格式

TDSQL的版本号通常采用三段式格式:主版本号.次版本号.修订版本号

主版本号

  • 表示重大版本更新
  • 通常包含不兼容的API变更
  • 例如:TDSQL 5.x 到 TDSQL 6.x

次版本号

  • 表示功能更新
  • 通常保持向后兼容
  • 例如:TDSQL 5.7 到 TDSQL 5.8

修订版本号

  • 表示 bug 修复和安全补丁
  • 完全向后兼容
  • 例如:TDSQL 5.7.28 到 TDSQL 5.7.29

特殊版本标识

  • GA(General Availability):正式发布版本
  • RC(Release Candidate):发布候选版本
  • Beta:测试版本
  • Alpha:内部测试版本

TDSQL 版本兼容性矩阵

主版本兼容性

源版本目标版本兼容性升级方式备注
TDSQL 5.5TDSQL 5.6兼容直接升级支持跨版本升级
TDSQL 5.5TDSQL 5.7兼容直接升级支持跨版本升级
TDSQL 5.5TDSQL 8.0兼容直接升级建议先升级到 5.7,再升级到 8.0
TDSQL 5.6TDSQL 5.7兼容直接升级支持跨版本升级
TDSQL 5.6TDSQL 8.0兼容直接升级建议先升级到 5.7,再升级到 8.0
TDSQL 5.7TDSQL 8.0兼容直接升级支持跨版本升级
TDSQL 8.0TDSQL 8.0.x完全兼容直接升级支持补丁升级

次版本兼容性

源版本目标版本兼容性升级方式备注
TDSQL 5.7.28TDSQL 5.7.29完全兼容补丁升级仅包含 bug 修复和安全补丁
TDSQL 5.7.28TDSQL 5.7.30完全兼容补丁升级仅包含 bug 修复和安全补丁
TDSQL 5.7.28TDSQL 5.7.31完全兼容补丁升级仅包含 bug 修复和安全补丁
TDSQL 8.0.18TDSQL 8.0.19完全兼容补丁升级仅包含 bug 修复和安全补丁
TDSQL 8.0.18TDSQL 8.0.20完全兼容补丁升级仅包含 bug 修复和安全补丁
TDSQL 8.0.18TDSQL 8.0.21完全兼容补丁升级仅包含 bug 修复和安全补丁

降级兼容性

源版本目标版本兼容性降级方式备注
TDSQL 5.7.29TDSQL 5.7.28兼容备份恢复需要备份数据后重新恢复
TDSQL 8.0.19TDSQL 8.0.18兼容备份恢复需要备份数据后重新恢复
TDSQL 5.7TDSQL 5.6不兼容不支持建议使用数据迁移工具
TDSQL 8.0TDSQL 5.7不兼容不支持建议使用数据迁移工具

操作系统兼容性

Linux 系统兼容性

TDSQL 版本支持的 Linux 发行版架构备注
TDSQL 5.5CentOS 6.x, 7.x
Red Hat 6.x, 7.x
Ubuntu 14.04, 16.04
x86_64支持主流 Linux 发行版
TDSQL 5.6CentOS 6.x, 7.x
Red Hat 6.x, 7.x
Ubuntu 14.04, 16.04, 18.04
x86_64增加对 Ubuntu 18.04 的支持
TDSQL 5.7CentOS 6.x, 7.x, 8.x
Red Hat 6.x, 7.x, 8.x
Ubuntu 16.04, 18.04, 20.04
Debian 9, 10
x86_64, ARM64增加对 CentOS 8.x 和 ARM64 架构的支持
TDSQL 8.0CentOS 7.x, 8.x
Red Hat 7.x, 8.x
Ubuntu 18.04, 20.04, 22.04
Debian 10, 11
SUSE Linux Enterprise Server 15
x86_64, ARM64增加对 Ubuntu 22.04 和 Debian 11 的支持

Windows 系统兼容性

TDSQL 版本支持的 Windows 版本架构备注
TDSQL 5.5Windows Server 2008 R2, 2012, 2012 R2x86_64支持主流 Windows Server 版本
TDSQL 5.6Windows Server 2008 R2, 2012, 2012 R2, 2016x86_64增加对 Windows Server 2016 的支持
TDSQL 5.7Windows Server 2012 R2, 2016, 2019x86_64增加对 Windows Server 2019 的支持
TDSQL 8.0Windows Server 2016, 2019, 2022x86_64增加对 Windows Server 2022 的支持

云平台兼容性

TDSQL 版本支持的云平台架构备注
TDSQL 5.6+阿里云 ECS
腾讯云 CVM
华为云 ECS
AWS EC2
Azure VM
x86_64, ARM64支持主流云平台
TDSQL 5.7+阿里云 ECS
腾讯云 CVM
华为云 ECS
AWS EC2
Azure VM
Google Cloud Compute Engine
x86_64, ARM64增加对 Google Cloud 的支持
TDSQL 8.0+阿里云 ECS
腾讯云 CVM
华为云 ECS
AWS EC2
Azure VM
Google Cloud Compute Engine
阿里云 ACK
腾讯云 TKE
华为云 CCE
x86_64, ARM64增加对 Kubernetes 容器服务的支持

应用程序兼容性

开发语言兼容性

TDSQL 版本JavaPythonPHPNode.jsGoC#
TDSQL 5.5JDBC 5.1+MySQL Connector/Python 1.2+PHP MySQLi, PDO_MySQLmysql2, sequelizego-sql-driver/mysqlMySQL Connector/NET 6.9+
TDSQL 5.6JDBC 5.1+MySQL Connector/Python 1.2+PHP MySQLi, PDO_MySQLmysql2, sequelizego-sql-driver/mysqlMySQL Connector/NET 6.9+
TDSQL 5.7JDBC 8.0+MySQL Connector/Python 8.0+PHP MySQLi, PDO_MySQLmysql2, sequelizego-sql-driver/mysqlMySQL Connector/NET 8.0+
TDSQL 8.0JDBC 8.0+MySQL Connector/Python 8.0+PHP MySQLi, PDO_MySQLmysql2, sequelizego-sql-driver/mysqlMySQL Connector/NET 8.0+

ORM 框架兼容性

TDSQL 版本HibernateMyBatisDjango ORMSQLAlchemyLaravel EloquentEntity Framework
TDSQL 5.53.x, 4.x3.x, 4.x1.8+1.0+5.x6.0+
TDSQL 5.63.x, 4.x, 5.x3.x, 4.x1.8+, 2.x1.0+, 1.1+5.x, 6.x6.0+, 6.1+
TDSQL 5.74.x, 5.x, 6.x3.x, 4.x2.x, 3.x1.1+, 1.2+6.x, 7.x6.1+, 7.0+
TDSQL 8.05.x, 6.x, 7.x3.x, 4.x2.x, 3.x, 4.x1.2+, 2.0+7.x, 8.x7.0+, 7.1+

中间件兼容性

TDSQL 版本NginxApacheRedisRabbitMQKafkaElasticsearch
TDSQL 5.51.8+2.4+3.0+3.6+0.10+1.7+
TDSQL 5.61.8+, 1.14+2.4+3.0+, 4.0+3.6+, 4.0+0.10+, 1.0+1.7+, 2.4+
TDSQL 5.71.14+, 1.16+2.4+4.0+, 5.0+4.0+, 5.0+1.0+, 2.0+2.4+, 5.6+
TDSQL 8.01.16+, 1.20+2.4+5.0+, 6.0+5.0+, 6.0+2.0+, 3.0+5.6+, 7.0+

客户端工具兼容性

图形化工具

TDSQL 版本MySQL WorkbenchNavicat for MySQLDBeaverphpMyAdminHeidiSQL
TDSQL 5.56.3+11.0+3.5+4.0+9.0+
TDSQL 5.66.3+, 8.0+11.0+, 12.0+3.5+, 5.0+4.0+, 4.7+9.0+, 10.0+
TDSQL 5.78.0+, 8.1+12.0+, 15.0+5.0+, 6.0+4.7+, 5.0+10.0+, 11.0+
TDSQL 8.08.1+, 8.2+15.0+, 16.0+6.0+, 7.0+5.0+, 5.1+11.0+, 12.0+

命令行工具

TDSQL 版本MySQL Clientmysqldumpmysqladminmysqlbinlogmysqlimport
TDSQL 5.55.5+5.5+5.5+5.5+5.5+
TDSQL 5.65.6+5.6+5.6+5.6+5.6+
TDSQL 5.75.7+5.7+5.7+5.7+5.7+
TDSQL 8.08.0+8.0+8.0+8.0+8.0+

存储引擎兼容性

TDSQL 版本InnoDBMyISAMMemoryCSVArchiveFederated
TDSQL 5.5支持支持支持支持支持支持
TDSQL 5.6支持支持支持支持支持支持
TDSQL 5.7支持支持支持支持支持支持
TDSQL 8.0支持支持支持支持支持不推荐使用

复制模式兼容性

TDSQL 版本异步复制半同步复制强同步复制GTID复制并行复制
TDSQL 5.5支持不支持不支持不支持不支持
TDSQL 5.6支持支持支持支持支持(基于库)
TDSQL 5.7支持支持支持支持支持(基于表)
TDSQL 8.0支持支持支持支持支持(基于行)

版本升级路径

推荐升级路径

从 TDSQL 5.5 升级到 TDSQL 8.0

  1. TDSQL 5.5 → TDSQL 5.7(直接升级)
  2. TDSQL 5.7 → TDSQL 8.0(直接升级)

从 TDSQL 5.6 升级到 TDSQL 8.0

  1. TDSQL 5.6 → TDSQL 5.7(直接升级)
  2. TDSQL 5.7 → TDSQL 8.0(直接升级)

从 TDSQL 5.7 升级到 TDSQL 8.0

  • 直接升级:TDSQL 5.7 → TDSQL 8.0

升级前准备

  1. 备份数据

    bash
    # 全量备份
    mysqldump -u root -p --all-databases --routines --triggers --events > full_backup.sql
    
    # 备份配置文件
    cp /etc/my.cnf /etc/my.cnf.bak
  2. 检查兼容性

    bash
    # 使用 mysqlcheck 检查表完整性
    mysqlcheck -u root -p --all-databases
    
    # 使用 mysql_upgrade 检查升级兼容性
    mysql_upgrade -u root -p
  3. 测试升级

    • 在测试环境中进行升级测试
    • 验证应用程序兼容性
    • 测试性能和稳定性
  4. 制定回滚计划

    • 准备好回滚脚本
    • 确保备份数据可用
    • 制定回滚步骤和时间点

升级方式

1. 原地升级

适用场景
  • 测试环境
  • 小型数据库
  • 允许短时间停机
升级步骤
  1. 停止数据库服务
  2. 备份数据和配置文件
  3. 安装新版本TDSQL
  4. 运行升级脚本
  5. 启动数据库服务
  6. 验证升级结果

2. 滚动升级

适用场景
  • 生产环境
  • 大型数据库
  • 要求高可用性
升级步骤
  1. 升级从库
  2. 切换主库
  3. 升级原主库
  4. 恢复复制关系

3. 逻辑升级

适用场景
  • 跨大版本升级
  • 架构变更
  • 数据迁移
升级步骤
  1. 部署新版本TDSQL实例
  2. 使用 mysqldump 或其他工具迁移数据
  3. 切换应用程序连接
  4. 验证升级结果

版本兼容性最佳实践

1. 版本选择原则

  • 稳定性优先:选择GA版本,避免使用测试版本
  • 长期支持:选择具有长期支持(LTS)的版本
  • 兼容性考虑:考虑与现有应用程序和中间件的兼容性
  • 功能需求:根据业务需求选择合适的版本
  • 社区活跃度:选择社区活跃的版本

2. 升级规划

  • 制定详细计划:包括升级时间、步骤、回滚计划等
  • 选择合适时间:业务低峰期进行升级
  • 分阶段升级:先测试环境,后生产环境
  • 逐步升级:避免跨多个主版本直接升级
  • 监控升级过程:实时监控升级进度和系统状态

3. 兼容性测试

  • 全面测试:测试所有应用程序和功能
  • 性能测试:验证升级后的性能表现
  • 压力测试:模拟高负载场景
  • 边界测试:测试极端情况下的系统表现
  • 回归测试:确保原有功能正常

4. 回滚准备

  • 完整备份:升级前进行全量备份
  • 配置备份:备份配置文件和参数
  • 回滚脚本:准备自动化回滚脚本
  • 测试回滚:在测试环境中测试回滚流程
  • 明确回滚条件:制定回滚触发条件

5. 升级后验证

  • 数据完整性验证:检查数据是否完整一致
  • 功能验证:验证所有功能正常
  • 性能验证:确认性能符合预期
  • 日志检查:检查错误日志和警告信息
  • 监控观察:观察系统运行状态

常见问题(FAQ)

Q1: 如何检查TDSQL版本兼容性?

A1: 检查TDSQL版本兼容性的方法:

  1. 查看官方文档的兼容性矩阵
  2. 使用 mysql_upgrade 工具检查
  3. 在测试环境中进行升级测试
  4. 咨询TDSQL技术支持
  5. 参考社区经验

Q2: 升级TDSQL后应用程序出现兼容性问题怎么办?

A2: 处理应用程序兼容性问题的方法:

  1. 检查应用程序连接字符串和驱动版本
  2. 查看数据库错误日志,识别具体问题
  3. 调整应用程序代码或配置
  4. 考虑降级或回滚数据库版本
  5. 咨询应用程序开发团队

Q3: TDSQL 8.0 相比 5.7 有哪些不兼容的变更?

A3: TDSQL 8.0 相比 5.7 的主要不兼容变更:

  1. 认证插件变更:默认使用 caching_sha2_password
  2. 系统变量变更:部分变量被移除或默认值改变
  3. SQL语法变更:部分不推荐的语法被移除
  4. 存储过程和函数变更:部分功能行为改变
  5. 复制功能变更:默认启用GTID复制

Q4: 如何迁移不兼容的数据类型或语法?

A4: 迁移不兼容数据类型或语法的方法:

  1. 使用 mysqlcheck --check-upgrade 检查
  2. 修复不兼容的数据类型
  3. 调整不兼容的SQL语法
  4. 使用工具进行自动化迁移
  5. 分批次迁移,逐步修复

Q5: 如何确保跨版本复制的兼容性?

A5: 确保跨版本复制兼容性的方法:

  1. 遵循推荐的升级路径
  2. 启用GTID复制
  3. 确保复制过滤器配置正确
  4. 监控复制延迟和错误
  5. 定期验证复制数据一致性

Q6: 如何获取TDSQL版本更新信息?

A6: 获取TDSQL版本更新信息的渠道:

  1. 官方网站发布公告
  2. 邮件订阅更新通知
  3. 社区论坛和博客
  4. 技术支持通知
  5. 版本发布说明文档