Error number: MY-012789; Symbol: ER_IB_MSG_964; SQLSTATE: HY000
Message: %s
错误说明:
MySQL错误代码MY-012789,代表ER_IB_MSG_964(HY000),说明在创建InnoDB数据表时发生了一个错误,导致非法的空闲值。
ER_IB_MSG_964错误特别常见于创建InnoDB表时,尤其是当上述表的空闲设置为NULL时。在此情况下,即使你的SQL语句写的没有问题,调用的函数也适用于该类型,你也可能会收到ER_IB_MSG_964错误。
解决方法:
要解决ER_IB_MSG_964,最重要的是要确定你的SQL语句。如果你的语句不正确,你就需要修复它。
另一种解决方法是检查你的“ Innodb_monitor_enable”变量,要检查该变量,请执行以下查询:
SHOW VARIABLES LIKE ‘inndb_monitor_enable’;
如果结果为“ OFF”,则可以使用以下查询更改它:
SET GLOBAL innodb_monitor_enable = ‘ALL’;
重新执行查询“ SHOW VARIABLES LIKE ‘inndb_monitor_enable’”,确保结果显示为“ ALL”,然后再次尝试查询错误的SQL语句,应将错误修复。
此外,还可以检查MySQL配置文件(例如my.cnf或my.ini)中的innodb_file_per_table设置,如果该设置被设置为FALSE,那么你必须更改它并将其设置为TRUE,然后再次尝试重新查询SQL语句,此时应为正确执行,并且不会抛出ER_IB_MSG_964错误。