Ik ben onlangs op een handige manier gestuit om toegang te krijgen tot het bestandssysteem en waardevolle informatie op te halen, zoals het bestaan van bestanden en mappen of hun inhoud. Dit kan erg nuttig zijn als alternatief voor de PHP-functie ` file_exists` , omdat de informatie over het bestaan van de bestanden kan worden gebruikt in de query voor verdere sorteer- en aggregatiefuncties.
Mits de betreffende databasegebruiker bestandsrechten heeft, kan de opdracht worden gebruikt.
SELECT LOAD_FILE(*PFAD ZUR DATEI*)
Controleer tijdens de zoekopdracht niet alleen of een bestand bestaat, maar lees ook de inhoud voor.
Op Windows-systemen moet worden opgemerkt dat backslashes in het pad naar het bestand dienovereenkomstig moeten worden gemarkeerd (bijvoorbeeld: C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts). Het veiligheidsaspect mag ook niet volledig worden genegeerd, aangezien wanneer de FILE-privilege wordt verleend, toegang tot de database automatisch toegang tot de rest van het bestandssysteem betekent.
Om ervoor te zorgen dat niet alleen NULL-waarden worden geretourneerd, moet ervoor worden gezorgd dat de gebruiker die MySQL uitvoert, leesrechten heeft.
Om ook toegang te krijgen tot grote bestanden, moet de algemene eigenschap "max_allowed_packet", die is ingesteld op 1 MB, worden verhoogd.
mysql -u... -p... set global max_allowed_packet = 1024 * 1024 * 512; exit;
U kunt nu (na het herstarten van de server) toegang krijgen tot bestanden die maximaal 512 MB groot zijn.