外观
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.5 | TDSQL 5.6 | 兼容 | 直接升级 | 支持跨版本升级 |
| TDSQL 5.5 | TDSQL 5.7 | 兼容 | 直接升级 | 支持跨版本升级 |
| TDSQL 5.5 | TDSQL 8.0 | 兼容 | 直接升级 | 建议先升级到 5.7,再升级到 8.0 |
| TDSQL 5.6 | TDSQL 5.7 | 兼容 | 直接升级 | 支持跨版本升级 |
| TDSQL 5.6 | TDSQL 8.0 | 兼容 | 直接升级 | 建议先升级到 5.7,再升级到 8.0 |
| TDSQL 5.7 | TDSQL 8.0 | 兼容 | 直接升级 | 支持跨版本升级 |
| TDSQL 8.0 | TDSQL 8.0.x | 完全兼容 | 直接升级 | 支持补丁升级 |
次版本兼容性
| 源版本 | 目标版本 | 兼容性 | 升级方式 | 备注 |
|---|---|---|---|---|
| TDSQL 5.7.28 | TDSQL 5.7.29 | 完全兼容 | 补丁升级 | 仅包含 bug 修复和安全补丁 |
| TDSQL 5.7.28 | TDSQL 5.7.30 | 完全兼容 | 补丁升级 | 仅包含 bug 修复和安全补丁 |
| TDSQL 5.7.28 | TDSQL 5.7.31 | 完全兼容 | 补丁升级 | 仅包含 bug 修复和安全补丁 |
| TDSQL 8.0.18 | TDSQL 8.0.19 | 完全兼容 | 补丁升级 | 仅包含 bug 修复和安全补丁 |
| TDSQL 8.0.18 | TDSQL 8.0.20 | 完全兼容 | 补丁升级 | 仅包含 bug 修复和安全补丁 |
| TDSQL 8.0.18 | TDSQL 8.0.21 | 完全兼容 | 补丁升级 | 仅包含 bug 修复和安全补丁 |
降级兼容性
| 源版本 | 目标版本 | 兼容性 | 降级方式 | 备注 |
|---|---|---|---|---|
| TDSQL 5.7.29 | TDSQL 5.7.28 | 兼容 | 备份恢复 | 需要备份数据后重新恢复 |
| TDSQL 8.0.19 | TDSQL 8.0.18 | 兼容 | 备份恢复 | 需要备份数据后重新恢复 |
| TDSQL 5.7 | TDSQL 5.6 | 不兼容 | 不支持 | 建议使用数据迁移工具 |
| TDSQL 8.0 | TDSQL 5.7 | 不兼容 | 不支持 | 建议使用数据迁移工具 |
操作系统兼容性
Linux 系统兼容性
| TDSQL 版本 | 支持的 Linux 发行版 | 架构 | 备注 |
|---|---|---|---|
| TDSQL 5.5 | CentOS 6.x, 7.x Red Hat 6.x, 7.x Ubuntu 14.04, 16.04 | x86_64 | 支持主流 Linux 发行版 |
| TDSQL 5.6 | CentOS 6.x, 7.x Red Hat 6.x, 7.x Ubuntu 14.04, 16.04, 18.04 | x86_64 | 增加对 Ubuntu 18.04 的支持 |
| TDSQL 5.7 | CentOS 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.0 | CentOS 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.5 | Windows Server 2008 R2, 2012, 2012 R2 | x86_64 | 支持主流 Windows Server 版本 |
| TDSQL 5.6 | Windows Server 2008 R2, 2012, 2012 R2, 2016 | x86_64 | 增加对 Windows Server 2016 的支持 |
| TDSQL 5.7 | Windows Server 2012 R2, 2016, 2019 | x86_64 | 增加对 Windows Server 2019 的支持 |
| TDSQL 8.0 | Windows Server 2016, 2019, 2022 | x86_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 版本 | Java | Python | PHP | Node.js | Go | C# |
|---|---|---|---|---|---|---|
| TDSQL 5.5 | JDBC 5.1+ | MySQL Connector/Python 1.2+ | PHP MySQLi, PDO_MySQL | mysql2, sequelize | go-sql-driver/mysql | MySQL Connector/NET 6.9+ |
| TDSQL 5.6 | JDBC 5.1+ | MySQL Connector/Python 1.2+ | PHP MySQLi, PDO_MySQL | mysql2, sequelize | go-sql-driver/mysql | MySQL Connector/NET 6.9+ |
| TDSQL 5.7 | JDBC 8.0+ | MySQL Connector/Python 8.0+ | PHP MySQLi, PDO_MySQL | mysql2, sequelize | go-sql-driver/mysql | MySQL Connector/NET 8.0+ |
| TDSQL 8.0 | JDBC 8.0+ | MySQL Connector/Python 8.0+ | PHP MySQLi, PDO_MySQL | mysql2, sequelize | go-sql-driver/mysql | MySQL Connector/NET 8.0+ |
ORM 框架兼容性
| TDSQL 版本 | Hibernate | MyBatis | Django ORM | SQLAlchemy | Laravel Eloquent | Entity Framework |
|---|---|---|---|---|---|---|
| TDSQL 5.5 | 3.x, 4.x | 3.x, 4.x | 1.8+ | 1.0+ | 5.x | 6.0+ |
| TDSQL 5.6 | 3.x, 4.x, 5.x | 3.x, 4.x | 1.8+, 2.x | 1.0+, 1.1+ | 5.x, 6.x | 6.0+, 6.1+ |
| TDSQL 5.7 | 4.x, 5.x, 6.x | 3.x, 4.x | 2.x, 3.x | 1.1+, 1.2+ | 6.x, 7.x | 6.1+, 7.0+ |
| TDSQL 8.0 | 5.x, 6.x, 7.x | 3.x, 4.x | 2.x, 3.x, 4.x | 1.2+, 2.0+ | 7.x, 8.x | 7.0+, 7.1+ |
中间件兼容性
| TDSQL 版本 | Nginx | Apache | Redis | RabbitMQ | Kafka | Elasticsearch |
|---|---|---|---|---|---|---|
| TDSQL 5.5 | 1.8+ | 2.4+ | 3.0+ | 3.6+ | 0.10+ | 1.7+ |
| TDSQL 5.6 | 1.8+, 1.14+ | 2.4+ | 3.0+, 4.0+ | 3.6+, 4.0+ | 0.10+, 1.0+ | 1.7+, 2.4+ |
| TDSQL 5.7 | 1.14+, 1.16+ | 2.4+ | 4.0+, 5.0+ | 4.0+, 5.0+ | 1.0+, 2.0+ | 2.4+, 5.6+ |
| TDSQL 8.0 | 1.16+, 1.20+ | 2.4+ | 5.0+, 6.0+ | 5.0+, 6.0+ | 2.0+, 3.0+ | 5.6+, 7.0+ |
客户端工具兼容性
图形化工具
| TDSQL 版本 | MySQL Workbench | Navicat for MySQL | DBeaver | phpMyAdmin | HeidiSQL |
|---|---|---|---|---|---|
| TDSQL 5.5 | 6.3+ | 11.0+ | 3.5+ | 4.0+ | 9.0+ |
| TDSQL 5.6 | 6.3+, 8.0+ | 11.0+, 12.0+ | 3.5+, 5.0+ | 4.0+, 4.7+ | 9.0+, 10.0+ |
| TDSQL 5.7 | 8.0+, 8.1+ | 12.0+, 15.0+ | 5.0+, 6.0+ | 4.7+, 5.0+ | 10.0+, 11.0+ |
| TDSQL 8.0 | 8.1+, 8.2+ | 15.0+, 16.0+ | 6.0+, 7.0+ | 5.0+, 5.1+ | 11.0+, 12.0+ |
命令行工具
| TDSQL 版本 | MySQL Client | mysqldump | mysqladmin | mysqlbinlog | mysqlimport |
|---|---|---|---|---|---|
| TDSQL 5.5 | 5.5+ | 5.5+ | 5.5+ | 5.5+ | 5.5+ |
| TDSQL 5.6 | 5.6+ | 5.6+ | 5.6+ | 5.6+ | 5.6+ |
| TDSQL 5.7 | 5.7+ | 5.7+ | 5.7+ | 5.7+ | 5.7+ |
| TDSQL 8.0 | 8.0+ | 8.0+ | 8.0+ | 8.0+ | 8.0+ |
存储引擎兼容性
| TDSQL 版本 | InnoDB | MyISAM | Memory | CSV | Archive | Federated |
|---|---|---|---|---|---|---|
| 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
- TDSQL 5.5 → TDSQL 5.7(直接升级)
- TDSQL 5.7 → TDSQL 8.0(直接升级)
从 TDSQL 5.6 升级到 TDSQL 8.0
- TDSQL 5.6 → TDSQL 5.7(直接升级)
- TDSQL 5.7 → TDSQL 8.0(直接升级)
从 TDSQL 5.7 升级到 TDSQL 8.0
- 直接升级:TDSQL 5.7 → TDSQL 8.0
升级前准备
备份数据:
bash# 全量备份 mysqldump -u root -p --all-databases --routines --triggers --events > full_backup.sql # 备份配置文件 cp /etc/my.cnf /etc/my.cnf.bak检查兼容性:
bash# 使用 mysqlcheck 检查表完整性 mysqlcheck -u root -p --all-databases # 使用 mysql_upgrade 检查升级兼容性 mysql_upgrade -u root -p测试升级:
- 在测试环境中进行升级测试
- 验证应用程序兼容性
- 测试性能和稳定性
制定回滚计划:
- 准备好回滚脚本
- 确保备份数据可用
- 制定回滚步骤和时间点
升级方式
1. 原地升级
适用场景
- 测试环境
- 小型数据库
- 允许短时间停机
升级步骤
- 停止数据库服务
- 备份数据和配置文件
- 安装新版本TDSQL
- 运行升级脚本
- 启动数据库服务
- 验证升级结果
2. 滚动升级
适用场景
- 生产环境
- 大型数据库
- 要求高可用性
升级步骤
- 升级从库
- 切换主库
- 升级原主库
- 恢复复制关系
3. 逻辑升级
适用场景
- 跨大版本升级
- 架构变更
- 数据迁移
升级步骤
- 部署新版本TDSQL实例
- 使用 mysqldump 或其他工具迁移数据
- 切换应用程序连接
- 验证升级结果
版本兼容性最佳实践
1. 版本选择原则
- 稳定性优先:选择GA版本,避免使用测试版本
- 长期支持:选择具有长期支持(LTS)的版本
- 兼容性考虑:考虑与现有应用程序和中间件的兼容性
- 功能需求:根据业务需求选择合适的版本
- 社区活跃度:选择社区活跃的版本
2. 升级规划
- 制定详细计划:包括升级时间、步骤、回滚计划等
- 选择合适时间:业务低峰期进行升级
- 分阶段升级:先测试环境,后生产环境
- 逐步升级:避免跨多个主版本直接升级
- 监控升级过程:实时监控升级进度和系统状态
3. 兼容性测试
- 全面测试:测试所有应用程序和功能
- 性能测试:验证升级后的性能表现
- 压力测试:模拟高负载场景
- 边界测试:测试极端情况下的系统表现
- 回归测试:确保原有功能正常
4. 回滚准备
- 完整备份:升级前进行全量备份
- 配置备份:备份配置文件和参数
- 回滚脚本:准备自动化回滚脚本
- 测试回滚:在测试环境中测试回滚流程
- 明确回滚条件:制定回滚触发条件
5. 升级后验证
- 数据完整性验证:检查数据是否完整一致
- 功能验证:验证所有功能正常
- 性能验证:确认性能符合预期
- 日志检查:检查错误日志和警告信息
- 监控观察:观察系统运行状态
常见问题(FAQ)
Q1: 如何检查TDSQL版本兼容性?
A1: 检查TDSQL版本兼容性的方法:
- 查看官方文档的兼容性矩阵
- 使用
mysql_upgrade工具检查 - 在测试环境中进行升级测试
- 咨询TDSQL技术支持
- 参考社区经验
Q2: 升级TDSQL后应用程序出现兼容性问题怎么办?
A2: 处理应用程序兼容性问题的方法:
- 检查应用程序连接字符串和驱动版本
- 查看数据库错误日志,识别具体问题
- 调整应用程序代码或配置
- 考虑降级或回滚数据库版本
- 咨询应用程序开发团队
Q3: TDSQL 8.0 相比 5.7 有哪些不兼容的变更?
A3: TDSQL 8.0 相比 5.7 的主要不兼容变更:
- 认证插件变更:默认使用 caching_sha2_password
- 系统变量变更:部分变量被移除或默认值改变
- SQL语法变更:部分不推荐的语法被移除
- 存储过程和函数变更:部分功能行为改变
- 复制功能变更:默认启用GTID复制
Q4: 如何迁移不兼容的数据类型或语法?
A4: 迁移不兼容数据类型或语法的方法:
- 使用
mysqlcheck --check-upgrade检查 - 修复不兼容的数据类型
- 调整不兼容的SQL语法
- 使用工具进行自动化迁移
- 分批次迁移,逐步修复
Q5: 如何确保跨版本复制的兼容性?
A5: 确保跨版本复制兼容性的方法:
- 遵循推荐的升级路径
- 启用GTID复制
- 确保复制过滤器配置正确
- 监控复制延迟和错误
- 定期验证复制数据一致性
Q6: 如何获取TDSQL版本更新信息?
A6: 获取TDSQL版本更新信息的渠道:
- 官方网站发布公告
- 邮件订阅更新通知
- 社区论坛和博客
- 技术支持通知
- 版本发布说明文档
