LOAD DATA LOCAL INFILE donne l'erreur de La commande utilisée n'est pas permis avec cette version de MySQL
J'ai un script PHP qui appelle MySQL LOAD DATA INFILE
pour charger des données à partir de fichiers CSV. Cependant, sur le serveur de production, je me suis retrouvé avec le message d'erreur suivant:
Accès refusé pour l'utilisateur ... (using password: yes)
Comme une solution de rechange rapide, j'ai changé la commande à LOAD DATA LOCAL INFILE
qui a fonctionné. Cependant, la même commande a échoué sur le serveur du client avec ce message:
La commande utilisée n'est pas permis avec cette version de MySQL
Je suppose que cela a quelque chose à voir avec la variable serveur: local_infile = off
comme décrit ici.
S'il vous plaît suggérer une solution de contournement qui ne comportent pas de changer les paramètres du serveur. Notez que phpMyAdmin utilitaire installé sur le même serveur qui semble accepter les fichiers CSV si je ne suis pas sûr que cela il utilise LOAD DATA (LOCAL) INFILE
.
Le même utilisateur peut exécuter
INSERT
requêtes, mais pas LOAD DATA INFILE
(accès refusé) ou LOAD DATA LOCAL INFILE
(utilisé la commande ne sont pas permis).OriginalL'auteur Salman A | 2012-05-24
Vous devez vous connecter pour publier un commentaire.
A couru dans la même question en tant que root et m'a jeté un moment
pourrait être un problème avec les paramètres de votre serveur jeu avec compilation
pour tester la connexion à la console avec le même utilisateur et tentez votre charger des données de commande
si vous recevez le même message d'erreur, essayez de fermer la console et en cours d'exécution
maintenant, essayez de course de charger des données de commande de nouveau
si cela fonctionne, alors vous allez avoir besoin de redémarrer mysqld avec l'option de ligne de commande ou ré-installer avec l'option de configuration
références (références sont pour la 5.0, mais il a travaillé pour moi avec 5,5):
http://dev.mysql.com/doc/refman/5.0/en/load-data-local.html
http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html#option_mysql_local-infile
votre accueil, même si c'est plus propre pour les autres, pour donner de la grâce à travers upvote
très utile de répondre, a couru dans le problème moi-même
OriginalL'auteur Alvin
J'ai été traing une solution pendant environ 1 heure, finalement j'ai trouvé que j'ai besoin de vous connecter à la base de données comme ceci
$dbh=mysql_connect($serveur,$dbuser,$dbpass,faux,128);
Passant de 128 dans le paramètre flags est la clé.
Voir http://www.php.net/manual/en/mysql.constants.php#mysql.client-flags pour en savoir plus sur les drapeaux.
OriginalL'auteur Hernan
prendre un coup d'oeil à cette liste d'autorisation, vous pouvez ajouter séparément, c'est à dire. vous pouvez insérer, mais pas de mise à jour, ou vous pouvez supprimer mais de ne pas sélectionner, etc...
Je pense que vous avez permision pour sélectionner, supprimer, insérer, mettre à jour, mais pas pour faire d'autres choses,
utilisez cette commande:
il va vous montrer ce que vous êtes en mesure de, dans mon cas.
OriginalL'auteur jcho360