質問: MySQLで load data local infile 'ファイル名' into table tb1n fields terminated by ','; を入力してcsvファイルをインポートしようとすると、ERROR 2 (HY000): File 'ファイル名' not found (Errcode: 2)と表示され、できないです。解決方法を教えていただきたいです。 mac OS X EI Capitanのバージョン10.11.2が実機で、ファイル名のところにはドラッグアンドドロップで絶対パスが入っているので間違ってないはずです。csvファイルは確かに存在するのに見つけられないのはなぜでしょうか・・・
回答: CSVファイル、またはそれが置かれているディレクトリに付与されている権限により、 mysqlユーザーからファイルが見えない状態になっていると思われます。 以下のコマンドを1つずつ、実行してみて下さい。 ``` ls -l / | grep Users ls -l /Users | grep ユーザ名 ls -l /Users/ユーザ名 | grep Documents ls -l /Users/ユーザ名/Documents/t.csv ``` どこかで`drwx------+`のように、他ユーザーから見えない権限になっていませんか? (私の手元にあるMacでは、`ls -l /Users/ユーザ名 | grep Documents`がそうでした) 上記の通りであれば、以下2つの手順を踏むことで、読み込めるようになるはずです。 * ファイル自体に、他ユーザーから見える権限を付与する * ファイルを他ユーザーから見える場所に移動する(`/tmp`とかで構わないと思います) 具体的には、以下のようなコマンドです。 ``` chmod go+r /Users/ユーザ名/Documents/t.csv mv /Users/ユーザ名/Documents/t.csv /tmp/ ``` もちろん、ファイルを移動したので、`load data 〜`コマンドに指定するパスも以下のように変更して下さい。 ``` load data local infile '/tmp/t.csv' into table tb1n fields terminated by ','; ```