Acceso al sistema de archivos mediante SQL

Acabo de encontrar una buena opción en MySQL para acceder al sistema de archivos y obtener información valiosa, por ejemplo, sobre la existencia de archivos y carpetas o su contenido. Esto puede ser muy útil como alternativa a la función php file_exists , ya que la información sobre la existencia de los archivos aún se puede usar en la consulta para funciones adicionales de clasificación y agregación.


Si el usuario de la base de datos asociada tiene el privilegio de ARCHIVO , puede usar el comando

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

Durante la consulta, no solo compruebe si existe un archivo, sino que también lea su contenido.

En los sistemas Windows, debe tenerse en cuenta que las barras invertidas deben marcarse en consecuencia en la ruta del archivo (ejemplo: C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts). El aspecto de seguridad tampoco debe ignorarse por completo, ya que cuando se otorga el privilegio FILE, el acceso a la base de datos significa automáticamente el acceso al resto del sistema de archivos.

Para garantizar que no solo se devuelvan valores NULL, debe asegurarse de que el usuario que ejecuta MySQL tenga derechos de lectura.

Para acceder a archivos grandes, se debe aumentar la propiedad global "max_allowed_packet", que se establece en 1 MB.

mysql -u... -p...
set global max_allowed_packet = 1024 * 1024 * 512;
exit;

Ahora puede (después de reiniciar el servidor) acceder a archivos que pueden tener un tamaño de hasta 512 MB.

Atrás