MysqlにコマンドでCSVファイルをインポートする方法

csv

データ数が多いCSVファイルをWEBスクリプト経由のCSV取り込みを実施するとタイムアウトエラーが起きる場合があります

例えば、郵便番号情報ファイル(KEN_ALL.csv)なんかがいい例。

約124000行、17MBほどのファイルになるので、WEBベースで取り込むのは難しいところがあります
php.iniファイルを編集して、取り込み細大ファイル容量を増やしたり、タイムアウトの時間を延ばせばやり過ごせますが、
たまにしか更新しないファイルの取り込みのためだけにタイムアウトの時間を延ばすのは、障害が起こった場合も設定されたタイムアウト時間まで待つしかなくなります。
しかもApacheの設定を変えるということは、Apacheの再起動が必要となるのでその時はセッションが切れてしまってこれもどうかなと。

結局は、サーバーにSSL接続してMysqlに繋いでCSVファイルをサーバー内で取り込ませるのが最善の方法

まぁなんて早いこと早いこと

以下、コマンド


1.Mysqlへ接続

2.DBへ接続

3.接続されたかテーブルを確認

4.対象のテーブルへCSVファイルをインポート

これでインポートは終了です。

CSVのフィールドのがカンマ区切りの場合は
fields terminated by ‘,’

文字列にダブルクォーテーションが入っている場合はその後に
OPTIONALLY ENCLOSED BY ‘”‘

を設定します。