MySQLインポートCSVファイルエラー13(HY000):/path/file.csvの統計情報を取得できません(エラーコード:2)


16

私はMySQL(5.5.34)/ Linux(Ubuntu 12.04 LTS)の絶対的な初心者です `

1つのテーブルを持つ単純なデータベースを作成しました。'data_test.csvファイルを使用してデータをインポートしようとすると、エラーメッセージ13が表示されます。

ターミナルからの実行は次のとおりです。

mysql> source /home/g/stockrecdb/load_test.sql;
Database changed
ERROR 13 (HY000): Can't get stat of '/home/stockrecdb/data_test.csv' (Errcode: 2)
mysql> 

注:LOAD DATA LOCAL INFILEでLOCALを使用すると、エラーが表示されます:エラー1148(42000):このMySQLバージョンでは使用されたコマンドは許可されません

回答:


26

あなたが使ってLOAD DATA INFILEいることを願っています。

LOAD DATA LOCAL INFILE代わりに使用してみてくださいLOAD DATA INFILE

他の問題はこれかもしれません、次のリンクをご覧ください:MySQL LOAD DATA。

MySQLにログインすると、次のようになります。

abdul@xmpp3:~/Desktop/Jiva$ mysql -uroot -p --local-infile
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 257
Server version: 5.5.29-0ubuntu0.12.04.1-log (Ubuntu)

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mydb;


mysql> LOAD DATA LOCAL INFILE '/home/abdul/Desktop/STATISTIC_T.csv' INTO TABLE STATISTIC_T  FIELDS TERMINATED BY '|' ENCLOSED BY '"' LINES TERMINATED BY '\n'  IGNORE 1 LINES;

次にLOAD DATA LOCAL INFILE、を使用してCSVをロードします。セキュリティ上の理由により、新しいMySQLバージョンに--local-infileロードする前に使用する必要がありCSVます。


3

上記の答えはOPの問題を解決しましたが、私は同じ問題をどのように解決したかについて貢献する必要があると感じています。エラー13は、ファイルのアクセス許可が正しくないか不十分であることが原因です。私の場合、これはSELinuxにかかっていました。SELinuxを使用している場合、MySQLの許可されたディレクトリにデータファイルパスを追加するための修正は、この回答で見つけることができます:https : //stackoverflow.com/a/3971632/1449160


2

MySQLでは、CSVファイルがアクセス可能なディレクトリにある必要があります。

ファイルを「/ home / stockrecdb /」から「/ tmp」に移動すると、問題が解決する場合があります。


1

この正確なエラーメッセージ は、Abdul Manafによって提案されError 13 (HY000)LOCALオプションを使用して解決されました。しかし、サイズが101GBのCSVファイルで立ち往生しました。このCSVファイルをインポートしようとしているときに、システムがディスク領域不足の警告を報告し、インポートタスクが完了していませんでした。イライラすることに、ディスクユーティリティのGui toolsのdf -hコマンドでも、ルートディレクトリに85GB以上のディスク領域が残っていることがわかりました。

次に、LOCALオプションがCSVファイルをルート/ディレクトリの一時的な場所にコピーすることを学びました。次に、一時ファイルから読み取ります。101GBのCSVファイルはルートに残された空きスペースよりも大きいため、ディスク不足の警告が表示されていましたが、後で認識したシステムモニターを除く多くのGUIおよびコマンドベースのツールでは検出されませんでした。私は300GBを超えるMySQLデータベースで作業しているため、MySQLデータディレクトリを別の内部ディスクに移動する必要があり、外部ハードディスクからCSVをインポートしていました。101GB CSVファイルを内部ディスクのMySQLデータディレクトリにコピーすると、LOAD DATA INFILEエラーメッセージなしでコマンドを実行できます。

そのLOCALため、ルートディレクトリの空き容量よりも大きい大きなCSVファイルのオプションに注意してください。LOCALオプションは、SSDの耐久性にとっても良い考えではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.