Error number: MY-012653; Symbol: ER_IB_MSG_828; SQLSTATE: HY000
Message: %s
错误说明:
ER_IB_MSG_828错误是InnoDB表空间有错误时被MySQL Server返回的错误,其错误代码为 MY-012653,错误SQLSTATE为 HY000。这是一个通用的错误代码,旗下的表空间错误的使用。
ER_IB_MSG_828错误常见于用户对表空间进行存储或操作等错误操作时会出现。例如,存储成功,但使用查询语句时无法查询表空间中的数据,甚至无法查看表空间的相关信息,此时就会出现ER_IB_MSG_828错误。
解决方法:
1. 检查MYSQL日志查询错误:把MySQL.err,general.log,slow.log日志都可以查看里面有没有这个错误,而查看这些日志,可以通过使用 SHOW GLOBAL STATUS; 命令查看;
2. 使用ibdcheck检查表空间的状态:这工具类似于ibdata文件的一个简单审核功能,可以快速检查ibd文件的一致性和完整性;
3. 通过恢复操作,重新收集表空间的信息:如果ibdcheck等检查确实确定表空间出现损坏,则可以考虑进行恢复操作,收集表空间的信息重新建立链接;
4. 使用其他工具检查表空间:MySQL支持数据库表空间可以使用外部工具来检查表空间,例如,精灵等数据库工具可以进行检查,也可以使用相关技术(MySQL Dump和MySQL Slave)来检查表空间。
总之,出现ER_IB_MSG_828错误,要做的最重要的是检查MySQL相关日志和检查表空间的相关状态,如不能满足要求,要及时进行恢复或者重新建立链接以恢复数据库可以使用的状态。