21. JANUAR 2019

Menu

LOAD_FILE() liefert NULL zurück

Zum Einen können fehlende Berechtigungen des MySQL-Users der Grund dafür sein. Zum Anderen kann es auch an einer Default-Einstellung liegen welche sich zb. nach einem Upgrade von MySQL geändert hat.

Konkret geht es um secure-file-priv. Steht hier ein Pfad so kann LOAD_FILE() nur dann korrekt arbeiten wenn sich das betreffende File innerhalb/unterhalb des gegebenen Verzeichnisses befindet. Ansonsten liefert die Funktion NULL zurück.

Setzt man secure-file-priv auf "" so kann überall im Filesystem darauf zugegriffen werden (Sicherheits-technisch muss dies natürlich abgewogen werden!)

Wichtig: Dem Benutzer muss explizit die FILE-Permission zugewiesen werden. Es genügt nicht wenn dem User ALL PRIVILEGES zugewiesen wurden!

GRANT FILE ON *.* TO 'aw'@'%';

Dies merkt man wenn folgender Befehl als root funktioniert jedoch als User den Wert NULL zurückliefert (Das Testfile muss natürlich mit Inhalt existieren!)

select LOAD_FILE('/tmp/testfile')


Keywords: mysql, linux
Dokumenten-ID: kb/ac6019fc-bd38-43ac-8620-d01bf47ace6c



Startseite - Keywords - Sitemap - Impressum