SQL kullanarak dosya sistemine erişim

MySQL'de dosya sistemine girmek ve değerli bilgiler elde etmek için güzel bir seçenekle karşılaştım, örneğin dosya ve klasörlerin varlığı veya içerikleri hakkında. Bu, file_exists php işlevine bir alternatif olarak çok yararlı olabilir, çünkü dosya (lar) ın varlığıyla ilgili bilgiler, daha ileri sıralama ve toplama işlevleri için sorguda hala kullanılabilir.


İlişkili veritabanı kullanıcısı FILE ayrıcalığına sahipse, şu komutu kullanabilirsiniz:

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

Sorgu sırasında yalnızca bir dosyanın var olup olmadığını kontrol etmekle kalmaz, aynı zamanda içeriğini de okuyun.

Windows sistemlerinde, dosya yolundaki ters eğik çizgilerin uygun şekilde işaretlenmesi gerektiğine dikkat edilmelidir (örnek: C: \\ Windows \\ System32 \\ sürücüler \\ etc \\ ana bilgisayarlar). FILE ayrıcalığı verildiğinde, veritabanına erişim otomatik olarak dosya sisteminin geri kalanına erişim anlamına geldiğinden, güvenlik yönü de tamamen göz ardı edilmemelidir.

Yalnızca NULL değerlerin döndürülmediğinden emin olmak için, MySQL çalıştıran kullanıcının okuma haklarına sahip olduğundan emin olunmalıdır.

Büyük dosyalara erişmek için, 1 MB olarak ayarlanmış "max_allowed_packet" global özelliği artırılmalıdır.

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

Artık (sunucuyu yeniden başlattıktan sonra) 512 MB boyuta kadar dosyalara erişebilirsiniz.

Geri