PolarDB MySQL 8.0完全兼容MySQL 5.7,您可以将MySQL 5.7数据库迁移到PolarDB MySQL 8.0使用,数据不会丢失,但需要注意客户端版本和PolarDB MySQL 8.0的兼容性问题。

说明 kickout是PolarDB MySQL 8.0的保留关键字。因此,若您已经在MySQL 5.7或开源MySQL 8.0上使用该关键字作为对象名称(如表名、字段名、存储过程名等),在迁移到PolarDB MySQL 8.0前,请您先修改对象名称避免使用该关键字。否则迁移时,将会出现错误码为1064的语法报错。

如何将MySQL 5.7迁移至PolarDB MySQL 8.0请参见如下文档:

客户端版本

您需要将MySQL客户端程序升级到如下版本:

说明 若原MySQL 5.7用户由于各种原因确实不能(或不方便)升级客户端驱动以适配PolarDB MySQL 8.0,可以考虑使用PolarDB MySQL 5.6代替。前提是:
  • 没有使用JSON数据类型。
  • 切换前进行详细的性能测试。
  • Java:MySQL Connector/J 8.0及以上版本。
  • ODBC:MySQL Connector/ODBC 8.0及以上版本。
  • CPP:MySQL Connector/CPP 8.0及以上版本。
  • .NET:MySQL Connector/NET 8.0及以上版本。
  • Nodejs:MySQL Connector/Nodejs 8.0及以上版本。
  • Python:MySQL Connector/Python 8.0及以上版本。
  • Python:mysql-connector-Python 8.0.5及以上版本。
  • Golang:go-sql-driver/mysql 1.4.0及以上版本。
  • PHP:mysqlnd 7.4及以上版本。
  • C/CPP:libmysqlclient 8.0及以上版本。

已知客户端问题

    • 问题现象:MySQL数据库连接异常,query_cache_size无法识别。
    • Driver版本:mysql-connector-java:5.1.42
    • 数据库版本:mysql 8.0.13
    • 解决办法:使用mysql-connector-java:5.1.42以上的版本,该版本相关更新日志请参见Changes in MySQL Connector/J 5.1.43
    • 问题现象:mysql python driver由于COM_STMT_EXECUTE的flag没有设置正确且没有发送com_stmt_fetch获取结果集,在MySQL 8.0版本上会导致无法正常获取返回结果,在MySQL 5.6/5.7版本可以正常返回结果。
    • Driver版本:mysql-connector-2.2.9。
    • 数据库版本:mysql 8.0.13。
    • 解决办法:安装8.0的python driver