Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2005, 14h45   #1
BBF
Invité de passage
 
Inscription : juin 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 6
Points : 1
Points : 1
Par défaut Signification de File_priv dans users de la BD mysql

Bonjour à tous,

Voici le contexte:
J'ai eu application qui fonctionne correctement sur easyphp1.6, nous utilisons maintenant easyphp1.8 mais on a configuré les paramètres de php.ini de manière à ce que cela fonctionne.
Nous utilisons un serveur où figure 3 applications différentes.
Mais et voici mon problème, j'ai des erreurs avec le code sql:
load data infile chemin... into table FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' IGNORE 1 LINES
Je l'utilise dans la fonction php mysql_query qui me retourne false.
Je pensais que l'administrateur ne me donne pas tous les droits et particulièrement le droit file_priv de la table user de la base de données mysql.
Est-ce que je me trompe? Faut-il avoir ce privilège pour importer des fichiers csv dans une base de données mysql?
BBF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2005, 15h31   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Par défaut Re: Signification de File_priv dans users de la BD mysql

Citation:
Envoyé par BBF
Faut-il avoir ce privilège pour importer des fichiers csv dans une base de données mysql?
Oui, si tant est que le fichier à importer se trouve sur le serveur.
Pour importer un fichier situé sur le poste client, tu peux utiliser LOAD DATA LOCAL INFILE (sans droit particulier).
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2005, 15h39   #3
BBF
Invité de passage
 
Inscription : juin 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 6
Points : 1
Points : 1
Par défaut Signification de File_priv dans users de la BD mysql

Merci c'est exactement cela.
Je vois un peu plus clair.
Le script PHP sauvegarde le fichier à importer dans le dossier www/Eservices(nom de l'application)/import/ puis il importe à partir de ce dossier le fichier dans la base de données.
Donc, il ne faut pas que j'utilise le LOCAL (si j'ai bien compris) et que je mets le privilège file_priv sur Yes.
Peux-tu m'expliquer le role de ces paramètres?
BBF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2005, 15h54   #4
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
En fait si ton serveur Web tourne sur la même machine que le serveur MySQL, tu peux utiliser les deux (avec LOCAL et sans LOCAL).

Si le serveur Web est séparé, tu es obligé d'utiliser LOCAL.
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2005, 16h04   #5
BBF
Invité de passage
 
Inscription : juin 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 6
Points : 1
Points : 1
Par défaut Signification de File_priv dans users de la BD mysql

Oui, je dois donner des détails supplémentaires.

En fait, on utilise une application écrit sous php testé sur easyphp 1.6.
Depuis 1 an, on travaille en local et aucun problème n'est apparu mais la base a grossi et pour des raisons de sécuriter, on a demandé un serveur sous easyphp 1.8 à notre service informatique.
Après s'être battu avec le service pour trouver la bonne configuration du fichier php.ini pour faire fonctionner correctement l'application sur 1.8, on est tombé sur ce problème d'importation.
La configuration actuelle est la suivante:
un serveur utilisant easyphp 1.8 où l'application et les données sont sauvegardées.
4 ordinateurs qui utilisent l'application.
Donc, si j'ai bien compris, vu que le script php sauvegarde le fichier sur le serveur, il faut absolument le paramètre file_priv.
J'espère que j'étais clair.
Dis moi si je me suis trompé.
Merci
BBF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2005, 16h45   #6
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Par défaut Re: Signification de File_priv dans users de la BD mysql

Citation:
Envoyé par BBF
Donc, si j'ai bien compris, vu que le script php sauvegarde le fichier sur le serveur, il faut absolument le paramètre file_priv.
J'avais zappé le fait que tu utilises EasyPHP

En fait comme je te disais, tu peux utiliser soit LOAD DATA soit LOAD DATA LOCAL puisque les serveurs MySQL et Web sont sur la même machine (regroupés dans EasyPHP).

Le problème du paramètre file_priv ne se pose que dans le cas d'un LOAD DATA INFILE (il faut rajouter ce privilège pour que l'utilisateur MySQL lise le fichier sur le serveur).

Avec un LOAD DATA LOCAL INFILE, c'est le client (donc le script PHP) qui lit le fichier et le transmet au serveur MySQL. Je te conseille plutôt cette méthode puisqu'il n'y a aucun droit spécial à configurer...
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2005, 17h02   #7
BBF
Invité de passage
 
Inscription : juin 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 6
Points : 1
Points : 1
Par défaut Signification de File_priv dans users de la BD mysql

Merci pour tes réponses, je commence à comprendre.

Là je fais un test sur un portable en dehors du réseau pour plus de sécurité et je comprends pas ce qui arrive.
J'ai donc easyphp 1.8 bien configuré et j'ai donc mis LOAD DATA LOCAL INFILE et ca ne fonctionne pas mais dès que je mets le paramètre file_priv , l'importation fonctionne. Là aussi, c'est un cas particulier?
Alors, je me dis que même pour l'application sur le serveur et la base, je dois mettre file_priv pour être sûr.
Y-a-t-il un risque pour les autres application du serveur si on met ce paramètre sur Yes (ce sont des arguments pour que le service informatique suive)?
Merci.

Dernier détail pour me rassurer:
Entre easyphp 1.6 et 1.8 pour que l'application développée sur 1.6 fonctionne sur 1.8, il faut que:
register_global = on
error_reporting = E_ALL & ~E_NOTICE
allow_call__time_pass_reference = on
S'il me manque des points, peux-tu me les indiquer?
Sinon, on fait çà pour faciliter le travail du service informatique.
Merci.
BBF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2005, 22h39   #8
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Par défaut Re: Signification de File_priv dans users de la BD mysql

Citation:
Envoyé par BBF
J'ai donc easyphp 1.8 bien configuré et j'ai donc mis LOAD DATA LOCAL INFILE et ca ne fonctionne pas mais dès que je mets le paramètre file_priv , l'importation fonctionne. Là aussi, c'est un cas particulier?
Bizarre, ce n'est pas ce que dit la doc et j'ai testé, pour moi ça fonctionne bien sans privilège file_priv.

Citation:
Y-a-t-il un risque pour les autres application du serveur si on met ce paramètre sur Yes (ce sont des arguments pour que le service informatique suive)?
Oui et non, ce privilège signifie seulement que l'utilisateur peut faire un LOAD DATA INFILE ou un SELECT INTO OUTFILE sur les fichiers auxquels le serveur MySQL a accès.

Citation:
Dernier détail pour me rassurer:
Entre easyphp 1.6 et 1.8 pour que l'application développée sur 1.6 fonctionne sur 1.8, il faut que:
register_global = on
error_reporting = E_ALL & ~E_NOTICE
allow_call__time_pass_reference = on
Je n'en sais rien, je n'utilise pas EasyPHP
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2005, 09h13   #9
BBF
Invité de passage
 
Inscription : juin 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 6
Points : 1
Points : 1
Par défaut Signification de File_priv dans users de la BD mysql

Merci.

Je pense avoir tout au main pour régler ce problème.

Merci et peut être à bientôt.
BBF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2005, 12h31   #10
BBF
Invité de passage
 
Inscription : juin 2005
Messages : 6
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 6
Points : 1
Points : 1
Par défaut Signification de File_priv dans users de la BD mysql

Après quelques essais avec l'administratuer et le service informatique, totu fonctionne correctement dans l'importation des fichiers dans la base.
C'était bien le file_priv qui posait problème. Avec file_priv sur Y, tout est OK.
Merci encore pour ces indications.
BBF est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h39.


 
 
 
 
Partenaires

Hébergement Web