いつも忘れて調べるんだけど、正解がシュッと出てこないのでインターネットの敗北。 我の勝利〜。
--local-infile=1
を利用する
デフォルトで用意されるパラメータグループか、それに準拠するパラメータを利用していれば、 --local-infile=1
を付けて mysql
コマンドを実行すればよい。
以下は扱う CSV ファイルが /tmp/example.csv
として設置されている前提で書いています。 なんで /tmp/
かっていうと mysql
コマンド以下から読み取れるファイル、権限設定を考えるのがめんどくさいからですね。 /tmp/
サイコー(こういうヤツが事故を起こす)。
mysql CLI から実行する
mysql -u ${ユーザ名} -p -h ${エンドポイント} --local-infile=1 ${データベース名} Password: mysql> LOAD DATA LOCAL INFILE '/tmp/example.csv' INTO TABLE ほんにゃかふんにゃか;
コマンドを流し込む
mysql -u ${ユーザ名} -p -h ${エンドポイント} --local-infile=1 ${データベース名} < ./example.sql Password:
example.sql
USE ${データベース名}; LOAD DATA LOCAL INFILE '/tmp/example.csv' INTO TABLE ほんにゃかふんにゃか;
以上だ
以上だ……。
なんか太古の昔はパラメータグループから特定のコンフィグを変更する、とかお作法あった気がするんだけどよく覚えてないです。 やったね!