MySQL019 ファイルを使ったやり取り(テキストファイル)
chap14
■インポート
>load data infileコマンドでデータ形式を指定するオプション
・fields terminated by 区切り文字 ('¥t':tab)
・lines terminated by 改行文字 ('¥n':改行)
・ignore 最初にスキップする行 lines (0)
※()内は初期値
・csvファイルのインポート
t.csv
N551,佐々木,37
N552,伊藤,41
N553,田中,31
N554,井上,43
N554,鈴木,31
load data infile '/Users/userName/Desktop/t.csv'
into table csv
fields terminated by ','; //csvなのでカンマを指定
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement //エラー
>確認
mysql> show variables like 'secure_file_priv';
mysql> SELECT @@global.secure_file_priv;
修正前(現状)
secure_file_priv NULL
1 row in set (0.00 sec)
→セキュアでないが、ローカルなのでいったんNULLから空白へ。
ぐぐるワード
・secure_file_priv
・my.cnf
>読み込まれる場所
このパスの配下に設定ファイルを配置する必要がある
$ mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /Applications/MAMP/conf/my.cnf ~/.my.cnf
>コピー元の設定ファイル格納場所
/Applications/MAMP/Library/support-files/my-default.cnf
>コピー先
/Applications/MAMP/conf/my.cnf
//my-default.cnfからmy.cnfへリネーム
>追加内容
[mysqld]の箇所に1行
secure-file-priv = ""
ERROR 1366 (HY000): Incorrect integer value: '佐々木' for column 'uria' at row 1
mysql> show variables like 'secure_file_priv';
//データ型が異なるとエラー
新規でcsvと同じ空テーブルを作成すればおk。
2回やると2回分データはimportされる。
■エクスポート
select * into outfile '/Users/userName/Desktop/out.csv'
fields terminated by ',' from csv;
■参考
本:基礎からのMySQL
mysql公式doc
各種qiita記事