文档解释
Error number: MY-012903; Symbol: ER_IB_MSG_1078; SQLSTATE: HY000
Message: Cannot recover a truncated undo tablespace in read-only mode
错误说明
MY-012903 (ER_IB_MSG_1078) 是MySQL服务器的错误码。它表示索引/表空间’%s’上的表’%s’已满。当索引/表空间空间不足时,会出现此错误。
常见案例
当一个MySQL服务器上的表或数据库内的索引已经耗尽空间时,此错误码会出现。此错误发送给MySQL的客户端时,可能显示为:
ERROR 1273 (HY000): Index/table space ‘%s’ is full
ERROR 1273 (HY000): Table ‘%s’ is full
解决方法
此MySQL错误可以通过扩容索引/表空间来解决。 为此,用户需要重新调整MySQL数据库查询,以减少索引大小。 另外,用户可以通过以下步骤重新调整索引/表空间大小:
1)在MySQL服务器上连接。
2)查看索引大小。 在MySQL中执行“SHOW INDEXES FROM %s;”,查看表的索引估计大小。
3)缩小索引大小。 使用“ALTER TABLE %s DROP INDEX name;”从表中删除不必要的索引。
4)扩大表空间。 将表空间改为最小的表空间大小。例如,在MySQL中执行“ALTER TABLE %s Shrink Space;”命令。
5)重新分配数据文件和索引文件。 用户可以使用MySQL“ALTER TABLE %s ASSIGN SPACE;”命令为索引/表重新分配空间。
6)重新分配表空间。 在MySQL中执行“ALTER TABLE ”%s“RESIZE;”,表空间将被重新