Error number: MY-011859; Symbol: ER_IB_MSG_34; SQLSTATE: HY000
Message: %s
错误ER_IB_MSG_34:警告:Table ‘./database_name/table_name’ 驻留在外部文件中,内存表的缓存中不存此表的记录。
发生此错误的常见原因:
1. 服务器中存在内存表:在某些MySQL版本下,MySQL服务器会尝试将内存表保存在磁盘上,但这个过程可能会失败,从而导致报告错误ER_IB_MSG_34;
2. 空间不足:错误ER_IB_MSG_34很可能是由于MySQL数据库空间不足导致的;
3. 缓存中不存在表记录:在某些MySQL版本中,MySQL服务器可能会报告错误ER_IB_MSG_34,因为缓存中不存在表记录。
解决方案:
1. 重新创建表:重新创建表可以有效解决错误ER_IB_MSG_34;
2. 检查服务器参数:请检查“temp_table_size”和“max_heap_table_size”参数,确保它们的值够用。在某些情况下,需要调整这些参数以节省内存;
3. 限制数据表总数:如果服务器上有大量的表,应设置table_open_cache参数来减少缓存中的表数;
4. 减少内存表的使用:确保数据库服务器中的数据表是永久的,而不是临时的;
5. 关闭DATA日志:关闭数据库服务器的数据日志可以有效减少数据库服务器中可能存在的内存表。