Načítání lokálního souboru v MySQL představuje bezpečnostní riziko a je ve výchozím nastavení vypnuto, chcete-li jej nechat vypnuté, pokud můžete. Když to není povoleno, zobrazí se tato chyba:
ERROR 1148 (42000): The used command is not allowed with this MySQL version
Řešení:
-
Použijte
--local-infile=1
argument na příkazovém řádku mysql:Když spustíte MySQL na terminálu, zahrňte
--local-infile=1
argument, Něco jako toto:mysql --local-infile=1 -uroot -p mysql>LOAD DATA LOCAL INFILE '/tmp/foo.txt' INTO TABLE foo COLUMNS TERMINATED BY '\t';
Potom je příkaz povolen:
Query OK, 3 rows affected (0.00 sec) Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
-
Nebo odešlete parametr do démona mysql:
mysqld --local-infile=1
-
Nebo jej nastavte v souboru my.cnf (Toto je bezpečnostní riziko):
Najděte svůj mysql
my.cnf
soubor a upravte jej jako root.Přidejte
local-infile
řádek pod označením mysqld a mysql:[mysqld] local-infile [mysql] local-infile
Uložte soubor, restartujte mysql. Zkuste to znovu.
Více informací naleznete zde:http:// dev.mysql.com/doc/refman/5.1/en/load-data-local.html