2010-12-27 31 views
5
mysql> LOAD DATA INFILE '/home/myuser/myproject/power/ids-ads.txt' INTO TABLE ids_ads FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'; 

ERROR 29 (HY000): File '/home/myuser/myproject/power/ids-ads.txt' not found (Errcode: 13) 

ファイルがあります。私はパスをmysqlコンソールに貼り付けました。権限は正しいです。このMYSQL文が私にエラーを出すのはなぜですか?

実際、私はrootユーザーとroot mysqlでテストしました。

-rw-r--r-- 1 myuser myuser 15893 2010-12-26 20:56 ids-ads.txt 
+0

ファイルは同じマシンにありますか?マウントやそれ以外のものはありませんか? – Steve

+0

ただ1台のマシン。非常に簡単なセットアップ – TIMEX

+0

そしてプロジェクト名にスペースはありませんか? – Steve

答えて

6

LOAD DATA INFILEを実行すると、MySQLはサーバーでそのファイルを探していますが、クライアントマシンでは探していません。

LOAD DATA INFILEを使用してクライアントマシン(サーバーマシンではない)にあるファイルをロードする場合は、LOAD DATA LOCAL INFILEを使用する必要があります。 MySQLのマニュアルから

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

0

うーん...おそらく愚かな質問が、「/home.../ids-ads.txt」という文字列のいずれかの目に見えない文字がありますか?

+0

私はそうは思わない。それはかなり普通のテキストのようです。 – TIMEX

2

:マルク・Bとして

For security reasons, when reading text files located on the server, the files 
must either reside in the database directory or be readable by all. Also, to use 
LOAD DATA INFILE on server files, you must have the FILE privilege. For non-LOCAL 
load operations, if the secure_file_priv system variable is set to a nonempty 
directory name, the file to be loaded must be located in that directory. 

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

0

ファイルは、データベースディレクトリまたはすべてが読み取り可能であることが必要である、と述べました。ファイルは読み込み可能である必要があるだけでなく、MySQLには、テキストファイルが保存されているディレクトリに読み込むためのアクセス権が必要です。/home/myuser/myproject/power /とそのコンテナの/ home/myuserまでのパーミッションは何ですか?もしそのチェーンのどこかでパーミッションが拒否された場合、MySQLはファイルを読み取ることができません。

0

phpmyadminを使用している場合は、必ずUse LOCAL keywordを有効にしてください。これは私のために働いた。

関連する問題