Erreur 1148 MySQL, La commande utilisée n'est pas permis avec cette version de MySQL
Je suis de l'utilisation de MySQL LOAD DATA LOCAL INFILE
commande et je reçois cette erreur:
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1148 The used
command is not allowed with this MySQL version: LOAD DATA LOCAL INFILE
'/tmp/phpI0ox54' INTO TABLE `dev_tmp` FIELDS TERMINATED BY ',' ENCLOSED
BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES; Array ( ) in
dc_real_estate_form_submit() (line 147 of /PATH/TO/PHP/SCRIPT).
Quel paramètre peut-on changer pour permettre LOAD DATA LOCAL infile?
Voici le Drupal 7 code que nous utilisons:
$sql = "LOAD DATA LOCAL INFILE '".$file."'
INTO TABLE `dev_tmp`
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
LINES
TERMINATED BY '\\r\\n'
IGNORE 1 LINES";
db_query($sql);
Elle nécessite une nouvelle autorisation pour un certain temps maintenant, c'est peut-être le problème?
ajouter --local-infile, tout en invoquant mysql. Elle fonctionne. Par exemple: mysql -h localhost --local-infile
ajouter --local-infile, tout en invoquant mysql. Elle fonctionne. Par exemple: mysql -h localhost --local-infile
OriginalL'auteur Chris Muench | 2012-10-10
Vous devez vous connecter pour publier un commentaire.
Chargement d'un fichier local dans MySQL est un risque de sécurité et est désactivée par défaut, vous voulez laisser de côté si vous le pouvez. Quand il n'est pas permis, vous obtenez ce message d'erreur:
Solutions:
Utilisation
--local-infile=1
argument sur la base de données mysql en ligne de commande:Lorsque vous démarrez MySQL sur le terminal, comprennent
--local-infile=1
argument, quelque Chose comme ceci:Puis la commande est permise:
Ou envoyer le paramètre dans le démon mysql:
Ou le mettre dans le mon.cnf fichier (C'est un risque de sécurité):
Trouver votre mysql
my.cnf
fichier et de l'éditer en tant que root.Ajouter le
local-infile
ligne sous la mysqld et mysql indicatifs:Enregistrer le fichier, redémarrez mysql. Essayez de nouveau.
Plus d'informations peuvent être trouvées ici: http://dev.mysql.com/doc/refman/5.1/en/load-data-local.html
OriginalL'auteur Lee Schmidt
En plus de l'utilisation de
local-infile
avec le serveur MySQL (vous pouvez mettre ceci dans le fichier /etc/my.cnf de fichier trop), vous devez également activer PDO pour l'autoriser:Sinon ça ne fonctionne pas, quelle que soit la valeur de
local-infile
sur le serveur MySQL.OriginalL'auteur Bill Karwin
L'héritage mysql_connect a aussi un paramètre "
client_flag
" qui peut être utilisée pour définir la base de données mysql paramètre.Exemple:
Toutefois, vous pouvez rencontrer l'erreur suivante:
Dans ce cas, vous pouvez avoir besoin de vérifier votre Application Armure paramètres afin de permettre l'accès MySQL pour l'importation des fichiers sur le système de fichiers.
En particulier, j'ai ajouté:
De donner MySQL accès en lecture/écriture /importer
e.g: Exemple d'Application de l'Armure profil
Après que MySQL peut lire des fichiers à partir de la
/import
répertoire.OriginalL'auteur David Thomas
La principale raison pour laquelle nous sommes, en utilisant le mot-clé est
expliqué dans le manuel MySQL:
Donc, si vous, en fait, l'accès au fichier sur le serveur, puis essayez de sauter en utilisant le mot "LOCAL" dans la requête SQL, et, au lieu de copier le fichier sur le serveur et le répertoire mysql/data/[nom de la table].
Plus à propos de ce LOCAL ou non LOCAL ici: PHPMyAdmin Bug
Vous n'avez pas à vous inquiétez plus au sujet de faire des changements dans /etc/mysql/my.cnf
OriginalL'auteur kaicarno