Erreur mariadb : load data local infile

poupilou

WRInaute impliqué
Salut à tous,

J'ai le script php ci-dessous :
mysql_query("LOAD DATA LOCAL INFILE 'mon_fichier.csv' INTO TABLE `ma_table` FIELDS TERMINATED BY ',' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\r\n' IGNORE 1 LINES") or die (mysql_error());
Sur mon ancien serveur (Release 3 de chez OVH) ce script php fonctionne parfaitement bien mais il ne fonctionne pas avec mon nouveau serveur (Centos 7 - Plesk Onyx), j'ai cette erreur qui s'affiche :
the used command is not allowed with this MariaDB version for the query load data local infile
J'ai bien mis local-infile=1 dans le fichier de config mysql my.cnf

Avez-vous une idée pour solutionner ce problème ?

D'avance merci pour vos réponses.

Bruno
 

poupilou

WRInaute impliqué
En utilisant "LOAD DATA INFILE" au lieu de "LOAD DATA LOCAL INFILE" je peux importer mon fichier csv dans ma table mysql à condition que ce fichier csv se trouve dans mon répertoire /var/lib/ma_base_MySql/

Mais je ne peux pas créer de fichier csv dans le répertoire /var/lib/ma_base_MySql/ depuis un script php qui se trouve dans /var/www/vhosts/mon-site.com/httpdocs/ ...ça ne marche pas !

Comment faire ?
 

poupilou

WRInaute impliqué
Je voulais parler précédemment du répertoire /var/lib/mysql/ma_base_MySql/ et non pas de /var/lib/ma_base_MySql/
 

ortolojf

WRInaute accro
Bonjour poupilou

De deux chose l'une :

1) Tu écris chemin entier du fichier csv,

2) Si fichier non accessible, se loguer en root et 1) le chemin entier ou positionnement sur le répertoire Var/lib/ma_base_MySql/

Amicalement.
 

poupilou

WRInaute impliqué
Merci pour ta réponse.

La solution consiste à ajouter le répertoire /var/lib/ma_base_MySql/ dans la variable "open_basedir" dans le fichier php.ini et d'utiliser "LOAD DATA INFILE" et ça fonctionne :)
 

Discussions similaires

Haut