Google Cloud Engine の Cloud SQL に .sql を読ませる
続き。
結局なんで読めなかったかというと文字コードがUTF16LEだったからのようだ。
というかなんで mysqldump の出力が UTF8 じゃないのか。まあいいとして。
GCPのCloud SQLに対応する形で .sql ファイルを出力するのは
Cloud SQL にインポートするデータのエクスポート | Cloud SQL | Google Cloud Platform
これの通り。
> mysqldump --databases [DATABASE_NAME] -h [INSTANCE_IP] -u [USERNAME] -p --hex-blob --skip-triggers --default-character-set=utf8 > [DATABASE_FILE].sql
ただまあ罠があってこれじゃあ日本語が取り出せない(文字化けする)。んで、--default-character-set=utf8
をutf8ではなくbinaryにする。
ちなみにutf8にしても出力ファイルはutf8じゃなかったんだけどね。だから引っかかったんだけどね。
あとは出てきた .sql ファイルをutf8にしてあげて読み込む。ひょっとしたらどこかでつまずく可能性はあるけどとりあえずこれで自分のところはうまくいった。