ERREUR 13 (HY000): impossible d'obtenir la statistique de /path/file.csv (Errcode: 2)


16

Je suis un débutant absolu en MySQL (5.5.34) / Linux (Ubuntu 12.04 LTS) `

J'ai créé une base de données simple avec une table. Lorsque vous essayez d'importer des données dedans via un fichier 'data_test.csv, un message d'erreur 13 apparaît.

Exert from Terminal suit:

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> 

Remarque: si vous utilisez LOCAL dans LOAD DATA LOCAL INFILE, une erreur apparaît: ERREUR 1148 (42000): La commande utilisée n'est pas autorisée avec cette version de MySQL

Réponses:


26

J'espère que vous utilisez LOAD DATA INFILE .

Essayez d'utiliser LOAD DATA LOCAL INFILEau lieu deLOAD DATA INFILE .

Un autre problème pourrait être celui-ci, veuillez visiter les liens suivants: MySQL LOAD DATA.

Lorsque vous vous connectez à MySQL, faites comme ci-dessous,

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;

Maintenant, chargez votre CSV en utilisant LOAD DATA LOCAL INFILE, nous devons utiliser --local-infileavant de charger CSVdans de nouvelles versions de MySQL, pour des raisons de sécurité.


3

Bien que la réponse ci-dessus ait résolu le problème de l'OP, je pense que je devrais contribuer quant à la façon dont j'ai résolu le même problème. L'erreur 13 est due à des autorisations de fichier incorrectes ou insuffisantes. Dans mon cas, c'était dû à SELinux. Si vous utilisez SELinux, le correctif pour ajouter le chemin de votre fichier de données aux répertoires autorisés pour MySQL se trouve dans cette réponse: /programming//a/3971632/1449160


2

MySQL nécessite que le fichier CSV se trouve dans un répertoire auquel il peut accéder.

Déplacer votre fichier de "/ home / stockrecdb /" vers "/ tmp" peut également résoudre le problème.


1

J'ai eu ce message d'erreur exact Error 13 (HY000)qui a été résolu en utilisant l' LOCALoption suggérée par Abdul Manaf. Cependant, je suis resté coincé avec un fichier CSV de taille 101 Go. Lors de l'importation de ce fichier CSV, le système a signalé un avertissement d'espace disque insuffisant et la tâche d'importation ne se terminait pas. Frustrant, l'utilitaire de disque Gui tools even df -hcommand a montré que mon répertoire racine avait plus de 85 Go d'espace disque.

J'ai ensuite appris que l' LOCALoption copie le fichier CSV dans un emplacement temporaire dans le répertoire racine /. Il lit ensuite le fichier temporaire. Étant donné que mon fichier CSV de 101 Go était plus grand que l'espace vide laissé sur ma racine / je voyais l'avertissement de disque faible, cependant, cela n'a pas été détecté dans de nombreux outils basés sur l'interface graphique et les commandes, à l'exception du moniteur système que j'ai reconnu plus tard. Comme je travaille sur une base de données MySQL de plus de 300 Go, j'ai dû déplacer le répertoire de données MySQL vers un autre disque interne et j'importais le CSV depuis un disque dur externe. La copie du fichier CSV de 101 Go dans le répertoire de données MySQL sur le disque interne m'a permis d'exécuter la LOAD DATA INFILEcommande sans aucun message d'erreur.

Soyez donc conscient de l' LOCALoption pour les fichiers CSV plus volumineux supérieurs à l'espace libre de votre répertoire racine. L'option LOCAL n'est pas non plus une bonne idée pour l'endurance des SSD.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.