SQLを使用したファイルシステムへのアクセス

最近、ファイルシステムにアクセスして、ファイルやフォルダの存在、あるいはその内容といった貴重な情報を取得する便利な方法を見つけました。これはPHPの` file_exists`関数に代わる非常に便利な方法となり得ます。なぜなら、ファイルの存在に関する情報は、クエリ内でソートや集計機能に利用できるからです。


関連付けられたデータベースユーザーにファイル権限があれば、このコマンドを使用できます。

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

クエリ中に、ファイルが存在するかどうかを確認するだけでなく、その内容を読み取ります。

Windowsシステムでは、ファイルへのパスのバックスラッシュをそれに応じてマークする必要があることに注意してください(例:C:\\ Windows \\ System32 \\ drivers \\ etc \\ hosts)。 FILE権限が付与されると、データベースへのアクセスは自動的にファイルシステムの残りの部分へのアクセスを意味するため、セキュリティの側面も完全に無視してはなりません。

NULL値が返されるだけでなく、MySQLを実行しているユーザーが読み取り権限を持っていることを確認する必要があります。

大きなファイルにアクセスするには、1MBに設定されているグローバルプロパティ「max_allowed_pa​​cket」を増やす必要があります。

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

これで、(サーバーを再起動した後)最大512MBのサイズのファイルにアクセスできます。

バック