めあとるーむ日記帳

なんか書く

Google Cloud Engine の Cloud SQL に .sql を読ませる

maretol.hatenablog.jp

続き。

結局なんで読めなかったかというと文字コードが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にしてあげて読み込む。ひょっとしたらどこかでつまずく可能性はあるけどとりあえずこれで自分のところはうまくいった。