www.bimminger.at

Tipps / Programmieren

Programmieren

MYSQL: LOAD DATA LOCAL INFILE führt zu ERROR 1148


Bei der Übernahme der Wartung eines bestehenden Systems war ich beim Migrieren auf einen anderen Server plötzlich mit folgender Fehlermeldung konfrontiert:

ERROR 1148: The used command is not allowed 
with this MySQL version.


Aufgetreten während des SQL Statements

LOCAL INFILE '$textfile' INTO TABLE tabelle 
FIELDS TERMINATED BY ';'


Auf der MySql - Seite hab ich dann im Manual den Tipp bekommen den Mysql-Daemon mit der Option --local-infile=1 (safe_mysqld --local-infile=1 &) zu starten. Für meine Situation hat das aber leider nichts geändert.

Erst wie ich LOCAL aus dem SQL-Statement entfernt habe

LOAD DATA INFILE '$textfile' INTO TABLE umsatz 
FIELDS TERMINATED BY ';'

erhielt ich

ERROR 1045: Access denied for user: 'dbuser@localhost' 
(Using password: YES)



Auch wenn die Rechte für den Filezugriff für den Mysql Daemon vorhanden sind bleibt die Fehlermeldung. Ich habe versucht nachdem ich das File via PHP temporär raufgeladen habe auch gleich Leserechte für alle vergeben. chmod($textfile, 0644) Ein Zugriff für den MySQL Daemon war damit auf jeden Fall möglich.

Ein Versuch das SQL-Statement via Konsole mit dem Mysql Root-User zu starten verläuft auch erfolgreich. Nur via PHP-Skript mit dem eigentlichen dbuser funktioniert es weiterhin nicht.

Nach dem Update der File-Privileges des dbusers (update user set file_priv='y' where user='dbuser') klappte endlich alles.


Um einen Diskussionsbeitrag zu posten müssen Sie eingeloggt sein.