Mysql
 sql >> Baza danych >  >> RDS >> Mysql

funkcja load_file nie działa w mysql

Krótki fragment dokumentacji LOAD_FILE() Funkcja MySQL:

Jak widać, istnieje mnóstwo powodów, dla których wywołujesz LOAD_FILE() nie powiedzie się:

  1. Plik musi znajdować się na komputerze, na którym działa serwer MySQL. Nie zawsze jest to ten sam komputer, na którym działa skrypt PHP (a dzieje się tak ze względów bezpieczeństwa). Jeśli działają na różnych komputerach, najprawdopodobniej nie możesz użyć LOAD_FILE() . Sprawa zamknięta.

    Teoretycznie możesz użyć FTP lub SFTP przenieść plik na komputer, na którym działa MySQL, ale z tych samych względów bezpieczeństwa prawdopodobnie nie masz dostępu do tego komputera.

  2. Zakładając, że w Twoim przypadku zarówno PHP, jak i MySQL działają na tym samym komputerze, /images/picture.jpg jest składnikiem ścieżki adresu URL, a nie ścieżką w systemie plików. Możesz użyć dirname() i __DIR__ aby skomponować ścieżkę do obrazów katalog zaczynający się od ścieżki bieżącego skryptu.

  3. Użytkownik, którego używasz do łączenia się z serwerem MySQL, musi mieć PLIK przywilej. Uprawnienie jest przyznawane użytkownikowi przez administratora.

  4. Plik musi być czytelny dla wszystkich. To najłatwiejsza część. Po uruchomieniu ls -l na pliku, ostatnie trzy symbole w kolumnie praw do pliku muszą być rw- lub r-- (nie ma sensu ustawiać bitu wykonywalnego).

  5. Domyślna wartość max_allowed_packet zmienna systemowa to 4 MiB ale DBA może to zmienić. Możesz uruchomić SELECT @@max_allowed_packet FROM dual aby poznać jego aktualną wartość.

  6. Jeśli secure_file_priv zmienna systemowa jest ustawiona, wtedy podana ścieżka musi być względna do tego katalogu. Ponownie możesz uruchomić SELECT @@secure_file_priv FROM dual aby znaleźć jego aktualną wartość.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP niezdefiniowana zmienna mysqli połączenie

  2. Obliczanie procentu w zapytaniu MYSQL na podstawie warunków

  3. Pokaż wyniki MySQL w tabeli bez ponownego ładowania strony

  4. Udostępnij widok sql

  5. Awaria kontenera MySQL po zmianie /etc/mysql/my.cnf, jak cofnąć?