ねこきっくぱんちのメモ帳

ITに関することいろいろめも。たまにアニメ。

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記事