Importation d'un fichier csv dans une table de mysql
zigroful
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
zigroful Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
zigroful Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour à tous,
je débute avec Mysql 8.0.23 sous Ubuntu 20.10 for Linux x86_64.
J'ai installé mysql server et mysql client. et je les ai démarrés l'un avec
sudo service mysql startet le client avec mysql -u root -p .
Tout a bien fonctionné
J'ai créé une base que j'ai nommé Essai et une table T_Essai ayant 6 champs et un index . J'ai indiqué les types de variable des chanps, les longuers etc...et j'ai vérifié par un DESCRIBE T_Essai; que tout est bien entré.
Ma table ne contient que les noms des champs
Dans un de mes répertoires, je possède un fichier csv contenant 6 champs que je souhaite importer dans ma table T_Essai. Ce fichier csv provient d'un fichier excel et les champs sont séparés par des points-virgules.
Lorsque je fais ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
LOAD DATA LOCAL INFILE 'chemin du fichier csv'
INTO TABLE T_Essai
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
j'obtiens l'erreur suivante:
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
renseignements pris sur internet, il semblerait que la variable local-infile doit être sur ON. Chez moi, elle est sur OFF et j'ai essayé de la retrouver dans les fichiers my.cnf ou mysql.cnf ou encore mysql.conf.d, en vain.
Je précise que je n'ai pas phpmyadmin ni aucun autre logiciel graphique. je souhaite faire cette importation exclusivement en ligne de commende
Quelqu'un a-t-il une idée sur la résolution de ce problème ?
La commande LOAD DATA LOCAL INFILE ? Est-ce la bonne commande pour ce type de problème ?
Je suis bloqué sur cette question depuis 2 jours ! Si quelqu'un veut bien prendre le temps de me donner des tuyaux, je lui en saurais gré.
Merci
Bonjour à tous,
je débute avec Mysql 8.0.23 sous Ubuntu 20.10 for Linux x86_64.
J'ai installé mysql server et mysql client. et je les ai démarrés l'un avec
sudo service mysql startet le client avec mysql -u root -p .
Tout a bien fonctionné
J'ai créé une base que j'ai nommé Essai et une table T_Essai ayant 6 champs et un index . J'ai indiqué les types de variable des chanps, les longuers etc...et j'ai vérifié par un DESCRIBE T_Essai; que tout est bien entré.
Ma table ne contient que les noms des champs
Dans un de mes répertoires, je possède un fichier csv contenant 6 champs que je souhaite importer dans ma table T_Essai. Ce fichier csv provient d'un fichier excel et les champs sont séparés par des points-virgules.
Lorsque je fais ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
LOAD DATA LOCAL INFILE 'chemin du fichier csv'
INTO TABLE T_Essai
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
j'obtiens l'erreur suivante:
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
renseignements pris sur internet, il semblerait que la variable local-infile doit être sur ON. Chez moi, elle est sur OFF et j'ai essayé de la retrouver dans les fichiers my.cnf ou mysql.cnf ou encore mysql.conf.d, en vain.
Je précise que je n'ai pas phpmyadmin ni aucun autre logiciel graphique. je souhaite faire cette importation exclusivement en ligne de commende
Quelqu'un a-t-il une idée sur la résolution de ce problème ?
La commande LOAD DATA LOCAL INFILE ? Est-ce la bonne commande pour ce type de problème ?
Je suis bloqué sur cette question depuis 2 jours ! Si quelqu'un veut bien prendre le temps de me donner des tuyaux, je lui en saurais gré.
Merci
Configuration: Linux / Firefox 87.0
A voir également:
- Importation d'un fichier csv dans une table de mysql
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Table ascii - Guide
- Fichier rar - Guide
4 réponses
Bonjour,
Oui il faut la mettre sur ON
Si elle n'est pas présente, il suffit de l'ajouter.
Tu peux aussi le faire lors du démarrage de mysql
l semblerait que la variable local-infile doit être sur ON. Chez moi, elle est sur OFF
Oui il faut la mettre sur ON
et j'ai essayé de la retrouver dans les fichiers my.cnf ou mysql.cnf ou encore mysql.conf.d, en vain.
Si elle n'est pas présente, il suffit de l'ajouter.
[mysqld] local_infile=ON
Tu peux aussi le faire lors du démarrage de mysql
mysql --local-infile -uroot -pyourpwd yourdbname
Merci Jordane,
Mais je lis, sur ta ligne de commande pour démarrer mysql, --local-infile mais tu ne donnes pas la valeur TRUE à cette variable. J'ai entré ta ligne de commande et elle ne démarre pas mon client
Mais je lis, sur ta ligne de commande pour démarrer mysql, --local-infile mais tu ne donnes pas la valeur TRUE à cette variable. J'ai entré ta ligne de commande et elle ne démarre pas mon client
J'ai fait :
mysql -p -u root --local-infile Essai
(essai est le nom de ma base déjà créée)
Cela a fonctionné ! mais quand je fais:
show variables;
je vois que local-infile est tjs sur OFF
mysql -p -u root --local-infile Essai
(essai est le nom de ma base déjà créée)
Cela a fonctionné ! mais quand je fais:
show variables;
je vois que local-infile est tjs sur OFF
Je ne t'ai donné que la ligne de commande coté client.
Par défaut, sa valeur est à true
Dans la doc, il est indiqué
Côté serveur, il faut démarrer avec l'option
--local-infile[={OFF|ON}] ( donc, dans ton cas, à ON )
Enfin, tout ça c'est dans la documentation.
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile
Par défaut, sa valeur est à true
Dans la doc, il est indiqué
For the mysql client, local data loading capability is determined by the default compiled into the MySQL client library. To disable or enable it explicitly, use the --local-infile=0 or --local-infile[=1] option.
Côté serveur, il faut démarrer avec l'option
--local-infile[={OFF|ON}] ( donc, dans ton cas, à ON )
Enfin, tout ça c'est dans la documentation.
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile