Le chargement d'un fichier local dans MySQL est un risque pour la sécurité et est désactivé par défaut, vous souhaitez le laisser désactivé si vous le pouvez. Lorsqu'il n'est pas autorisé, vous obtenez cette erreur :
ERROR 1148 (42000): The used command is not allowed with this MySQL version
Solution :
-
Utilisez
--local-infile=1argument sur la ligne de commande mysql :Lorsque vous démarrez MySQL sur le terminal, incluez
--local-infile=1argument, Quelque chose comme ça :mysql --local-infile=1 -uroot -p mysql>LOAD DATA LOCAL INFILE '/tmp/foo.txt' INTO TABLE foo COLUMNS TERMINATED BY '\t';Alors la commande est autorisée :
Query OK, 3 rows affected (0.00 sec) Records: 3 Deleted: 0 Skipped: 0 Warnings: 0 -
Ou envoyez le paramètre dans le démon mysql :
mysqld --local-infile=1 -
Ou définissez-le dans le fichier my.cnf (C'est un risque pour la sécurité) :
Trouvez votre mysql
my.cnffichier et modifiez-le en tant que root.Ajoutez le
local-infilesous les désignateurs mysqld et mysql :[mysqld] local-infile [mysql] local-infileEnregistrez le fichier, redémarrez mysql. Réessayez.
Plus d'informations peuvent être trouvées ici :https:// dev.mysql.com/doc/refman/5.1/en/load-data-local.html