Error number: MY-013484; Symbol: ER_UPGRADE_WITH_PARTITIONED_TABLES_REJECTED; SQLSTATE: HY000
Message: Upgrading from server version %d with partitioned tables and lower_case_table_names == 1 on a case sensitive file system may cause issues, and is therefore prohibited. To upgrade anyway, restart the new server version with the command line option ‘upgrade=FORCE’. When upgrade is completed, please execute ‘RENAME TABLE TO ; RENAME TABLE TO ;’ for each of the partitioned tables. Please see the documentation for further information.
ER_UPGRADE_WITH_PARTITIONED_TABLES_REJECTED错误是MySQL中的一个通用错误。它表示MySQL正在尝试升级时无法处理分区表。这可能是由于MySQL尝试升级是必须满足的一些条件或要求,但它们被拒绝的原因之一。
错误说明
收到此错误时,MySQL将显示An error occurred while upgrading table ‘table name’,并且错误代码为ER_UPGRADE_WITH_PARTITIONED_TABLES_REJECTED,其SQLSTATE为HY000。
常见案例
常见的情况是,用户尝试将MySQL从一个版本升级到另一个版本,而有些表包含分区。但可能有一些限制或要求,MySQL无法满足,使用户无法完成升级。
解决方法
这项错误是可以逆转处理的,用户可以针对使MySQL不能满足的特定条件,解决或者编辑分区表,使其符合升级要求。查看MySQL的字典,可以确定已从当前版本升级的所有表的要求或限制。
MySQL也提供使用REPAIR TABLE语句修复损坏的表结构的功能,可以使用ALTER TABLE语句编辑表,以使其符合所有升级要求。修复表在MySQL升级之前是必要的,以便MySQL可以在升级过程中有效地处理分区表。用户也可以使用TRUNCATE TABLE语句把不必要的分区从表中清除,以便MySQL可以有效升级表。
用户也可以要求MySQL强制执行升级,使用–upgrade[=true]命令行选项,这样MySQL将尝试继续升级表。启用这个选项,MySQL将以–force[=true]标志升级,但不会修复或编辑表。这项选项只用于某些特殊情况,当用户确信升级操作不会损坏表或数据时使用。
由于MySQL升级表非常关键,升级前需要严格测试,以避免执行升级时出现意外错误。在尝试升级时,应谨慎执行升级操作,如果MySQL在升级时有任何错误,立即停止升级并检查所有受影响表。