mysqlでcsvをインポートするためのコマンドライン

ブログをずっと放置していました。
ドメインを変更して画像やファイルへのリンクが全て切れていることにも気づいていませんでした。
絶対パス指定になっていたんですね。

一個、一個手でやっていたらキリが無いので、下記の手順でなおしてやろうと思いました。

1. phpMyAdminで記事のデータベースをcsvエクスポート
2. エクスポートしたcsvを開いてリンクのドメイン部分を一気に置換して上書き保存
3. phpMyAdminで上書き保存したcsvをインポート

だけど、なぜか失敗。(最初からcsvではなくsqlでエクスポートすれば良かった。。。)
で、phpMyAdminを使わずに直接mysqlコマンドでcsvをインポートしてやることにしました。
これも文字化けが発生したのですが、何とか下記の手順でうまくいったのでメモ。
ポイントは”set character_set_database=utf8″ですね。
utf8の場合は¥(円)と\(バックスラッシュ)が区別されるので注意。
macで\を入力するにはOption + ¥ です。
あと、今回は文字化けしたテーブルに上書きインポートしたかったので
“replace into table テーブル名” としましたが、テーブルが空ならばreplaceは書かなくても良いです。

[sql]
mysql -uユーザー名 -pパスワード
use データベース名;
set character_set_database=utf8;
load data local infile "インポートするcsvのファイルパス/hoge.csv" replace into table テーブル名 fields terminated by ‘,’ enclosed by ‘"’ escaped by ‘\\’ lines terminated by ‘\r\n’;
quit
[/sql]