Posted at

RDSで`Mysql2::Error: Incorrect key file for table '/rdsdbdata/tmp/...'; try to repair it`というエラーに対応する

More than 5 years have passed since last update.


背景

一部のSQL実行時にMysql2::Error: Incorrect key file for table '/rdsdbdata/tmp/#sql_69c6_2.MYI'; try to repair itというエラーが発生するようになった.全てのSQLにおいて起きるわけではない.

<!-- 何をしようとしてこの問題に遭遇したかを簡単に説明してください -->


問題

check table xxxしても問題なかったため,テーブルが壊れているわけではない.

原因はストレージ容量(tmpdirの容量)が不足していることだった.(tmpdirはSQL実行時の一時バッファ?)


解法

RDSのAllocated Storageを増やす.これはRDSを稼動させたまま変更することもできる.

RDSでないならば,tmpdirの余計なファイルを削除すればよさそう.


参考リンク

Modifying a DB Instance Running the MySQL Database Engine - Amazon Relational Database Service