sql >> Database >  >> RDS >> Mysql

load_file functie werkt niet in mysql

Een kort fragment uit de documentatie van LOAD_FILE() MySQL-functie:

Zoals u kunt zien, zijn er talloze redenen waarom uw oproep naar LOAD_FILE() mislukt:

  1. Het bestand moet aanwezig zijn op de computer waarop de MySQL-server draait. Dit is niet altijd dezelfde computer als die waarop het PHP-script draait (en dit gebeurt om veiligheidsredenen). Als ze op verschillende computers draaien, kunt u hoogstwaarschijnlijk LOAD_FILE() niet gebruiken . Zaak gesloten.

    In theorie zou je FTP kunnen gebruiken of SFTP om het bestand over te zetten naar de computer waarop MySQL draait, maar om dezelfde veiligheidsredenen heb je waarschijnlijk geen toegang tot die computer.

  2. Ervan uitgaande dat in jouw geval zowel PHP als MySQL op dezelfde computer draaien, /images/picture.jpg is de padcomponent van de URL, niet een pad op het bestandssysteem. U kunt dirname() gebruiken en __DIR__ om het pad naar de images samen te stellen directory beginnend vanaf het pad van het huidige script.

  3. De gebruiker die u gebruikt om verbinding te maken met de MySQL-server moet de FILE voorrecht. Het privilege wordt aan de gebruiker verleend door een DBA.

  4. Het bestand moet voor iedereen leesbaar zijn. Dit is het gemakkelijkste deel. Wanneer u ls -l . uitvoert op het bestand moeten de laatste drie symbolen in de kolom met bestandsrechten rw- . zijn of r-- (het heeft geen zin om het uitvoerbare bit in te stellen).

  5. De standaardwaarde van max_allowed_packet systeemvariabele is 4 MiB maar een DBA kan dit veranderen. U kunt SELECT @@max_allowed_packet FROM dual . uitvoeren om de huidige waarde te achterhalen.

  6. Als de secure_file_priv systeemvariabele is ingesteld, moet het pad dat u opgeeft relatief zijn aan deze map. Nogmaals, u kunt SELECT @@secure_file_priv FROM dual . uitvoeren om de huidige waarde te vinden.




  1. Mag je getallen als tabelnamen gebruiken in MySQL?

  2. Waarom de init_command set engine=INNODB van django DATABASE_OPTIONS verwijderen na het maken van een tabel?

  3. Voorwaarden toevoegen in MERGE-instructie in Oracle SQL voor INSERT/UPDATE

  4. sql hoe u drie query's uit twee tabellen in één query kunt combineren