私は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を使用すると、次のエラーが表示されます:ERROR 1148(42000):使用されたコマンドは、このMySQLバージョンでは許可されていません
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バージョンでCSV
をロードする前に--local-infile
を使用する必要があります。
MySQLでは、CSVファイルがアクセス可能なディレクトリにある必要があります。
「/ home/stockrecdb /」から「/ tmp」にファイルを移動することでも問題が解決する場合があります。
上記の回答でOPの問題は解決しましたが、同じ問題をどのように解決したかについては貢献した方がいいと思います。エラー13は、不正または不十分なファイル権限が原因で発生します。私の場合、これはSELinuxが原因でした。 SELinuxを使用している場合、MySQLの許可されたディレクトリにデータファイルパスを追加するための修正は、この回答にあります: https://stackoverflow.com/a/3971632/144916
この正確なエラーメッセージError 13 (HY000)
がありました。これは、Abdul Manafによって提案されたLOCAL
オプションを使用して解決されました。しかし、サイズが101GBのCSVファイルで行き詰まりました。このCSVファイルをインポートしようとしたときに、システムがディスク容量不足の警告を報告し、インポートタスクが完了していませんでした。イライラして、ディスクユーティリティのGuiツールでさえdf -h
コマンドは、ルートディレクトリに85GB以上のディスク領域が残っていることを示しました。
次に、LOCAL
オプションがCSVファイルをルート/ディレクトリの一時的な場所にコピーすることを学びました。次に、一時ファイルから読み取ります。 101 GBのCSVファイルがルートに残っている空き容量よりも大きいため、ディスク不足の警告が表示されましたが、これは、後で認識したシステムモニター以外の多くのGUIおよびコマンドベースのツールでは検出されませんでした。 300 GBを超えるMySQLデータベースで作業しているので、MySQLデータディレクトリを別の内部ディスクに移動する必要があり、CSVを外部ハードディスクからインポートしていました。 101 GBのCSVファイルを内部ディスクのMySQLデータディレクトリにコピーすると、LOAD DATA INFILE
コマンド、エラーメッセージなし。
したがって、ルートディレクトリの空き容量よりも大きい大きなCSVファイルのLOCAL
オプションに注意してください。 LOCALオプションもSSDの耐久性には適していません。