この記事について
| 環境 | さくら共有サーバー、mysql |
|---|---|
| 目的 | CSVファイルをload dataでインポートする |
| 結果 | –enable-local-infile付きでDBサーバーにログインし、load data local infileを実行する |
つまずきポイント要約
- –enable-local-infileを付けないと「The used command is not allowed with this MySQL version」エラー
- use するデータベース名は「ユーザー名_データベース名」となっているのを忘れないこと
さくら共有サーバーでCSVファイルをインポートした際の覚書。
ファイルのインポートは「load data」を使う。
用意したCSVファイル、test.csv
3,テストです
インポート先のテーブルもフィールドは2つ。
1.SSHでサーバーにログインする
2.データベースサーバーにログインする
ログインした際のコマンド
mysql -u ユーザー名 -h mysqlxxx.db.sakura.ne.jp -p --enable-local-infile
大事なのは行末の「–enable-local-infile」でLOAD DATA LOCAL INFILE 文を使えるようにしておくこと。無いと「load data local」したとき、
「The used command is not allowed with this MySQL version」とエラーが出る
3.「load data」を実行してインポート
use データベース名 ←データベースを選択。「ユーザー名_データベース名」となっているのを忘れないこと。
load data local infile "/home/username/www/test.csv" into table テーブル名 fields terminated by ',';
「LOCAL」をつけることで、FILE権限なしで、ローカルファイルの読み込みが可能になる。「fields terminated by」はフィールド区切り文字の指定。ちなみに囲み文字の指定は「OPTIONALLY ENCLOSED BY」で行う。
行の終わりは「lines terminated by ‘\n’」で明示できる。
