MySQL-Import-CSV-Datei FEHLER 13 (HY000): Status von /path/file.csv kann nicht abgerufen werden (Fehlercode: 2)


16

Ich bin ein absoluter Anfänger in MySQL (5.5.34) / Linux (Ubuntu 12.04 LTS) `

Ich habe eine einfache Datenbank mit einer Tabelle erstellt. Beim Versuch, Daten über eine 'data_test.csv-Datei zu importieren, wird eine Fehlermeldung 13 angezeigt.

Übung vom Terminal folgt:

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> 

Hinweis: Bei Verwendung von LOCAL in LOAD DATA LOCAL INFILE wird ein Fehler angezeigt: ERROR 1148 (42000): Der verwendete Befehl ist in dieser MySQL-Version nicht zulässig

Antworten:


26

Ich hoffe du benutzt LOAD DATA INFILE.

Versuchen Sie , verwenden LOAD DATA LOCAL INFILEstatt LOAD DATA INFILE.

Ein anderes Problem könnte dies sein, besuchen Sie bitte die folgenden Links: MySQL LOAD DATA.

Wenn Sie sich in MySQL anmelden, gehen Sie wie folgt vor:

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;

Laden Sie nun Ihre CSV mit LOAD DATA LOCAL INFILE, die wir aus Sicherheitsgründen verwenden müssen, --local-infilebevor wir CSVneue MySQL-Versionen laden .


3

Obwohl die obige Antwort das Problem für das OP gelöst hat, sollte ich einen Beitrag dazu leisten, wie ich das gleiche Problem gelöst habe. Fehler 13 wird durch falsche oder unzureichende Dateiberechtigungen verursacht. In meinem Fall war dies SELinux zu verdanken. Wenn Sie SELinux verwenden, finden Sie das Update zum Hinzufügen Ihres Datendateipfads zu den zulässigen Verzeichnissen für MySQL in der folgenden Antwort: /programming//a/3971632/1449160


2

MySQL setzt voraus, dass sich die CSV-Datei in einem Verzeichnis befindet, auf das es zugreifen kann.

Verschieben Sie Ihre Datei von "/ home / stockrecdb /" nach "/ tmp", um das Problem zu beheben.


1

Ich hatte genau diese Fehlermeldung, Error 13 (HY000)die mit der LOCALvon Abdul Manaf vorgeschlagenen Option behoben wurde . Ich blieb jedoch bei einer CSV-Datei mit einer Größe von 101 GB hängen. Beim Versuch, diese CSV-Datei zu importieren, meldete das System LOW Disk Space Warning und die Importaufgabe wurde nicht abgeschlossen. Das Festplatten-Dienstprogramm Gui tools hat sogar frustrierend df -hgezeigt, dass in meinem Stammverzeichnis noch mehr als 85 GB Festplattenspeicher vorhanden sind.

Dann habe ich erfahren, dass die LOCALOption die CSV-Datei an einen temporären Ort im Stammverzeichnis / Verzeichnis kopiert. Dann liest es aus der temporären Datei. Da meine CSV-Datei mit 101 GB größer war als der leere Speicherplatz in meinem Stammverzeichnis / wurde die Warnung "Wenig Festplattenspeicher" angezeigt. Dies wurde jedoch in vielen GUI- und befehlsbasierten Tools mit Ausnahme des Systemmonitors, den ich später erkannte, nicht erkannt. Da ich an einer MySQL-Datenbank mit mehr als 300 GB arbeite, musste ich das MySQL-Datenverzeichnis auf eine andere interne Festplatte verschieben und importierte die CSV-Datei von einer externen Festplatte. Durch Kopieren der 101 GB CSV-Datei in das MySQL-Datenverzeichnis auf der internen Festplatte kann ich den LOAD DATA INFILEBefehl ohne Fehlermeldung ausführen .

Achten Sie daher auf die LOCALOption für größere CSV-Dateien, die größer sind als der freie Speicherplatz Ihres Stammverzeichnisses. LOCAL-Option ist auch keine gute Idee für die Ausdauer der SSD.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.