MySQL
SQL
Aurora

lower_case_table_namesでハマった

More than 1 year has passed since last update.

Table 'xxx.xxxxx' doesn't exist

そんな馬鹿な…
Auroraを使っていてバッチを走らせたら出てきたエラー

原因

ここに詳しい説明がある

MySQL には lower_case_table_names という変数があって,これはテーブル名の大文字小文字を区別するかどうかというのを設定するパラメータなわけですが,その詳細は以下のようになっています (参照: MySQL :: MySQL 5.6 Reference Manual :: 9.2.2 Identifier Case Sensitivity).

これが 0 になっていたので、もともと大文字を無視して小文字に変換していたクエリがコケてた。

AWS RDSのパラメーターグループ

このへんにドキュメントがある

パラメーターグループが外れていたので、適用しなおしてインスタンスを再起動したら動くようになった。