sql >> データベース >  >> RDS >> Mysql

load_file関数がmysqlで機能していません

    LOAD_FILE() MySQL関数:

    ご覧のとおり、 LOAD_FILE()を呼び出す理由は無数にあります。 失敗:

    1. このファイルは、MySQLサーバーが実行されているコンピューターに存在する必要があります。これは、PHPスクリプトが実行されるコンピューターと常に同じであるとは限りません(これはセキュリティ上の理由から発生します)。それらが異なるコンピューターで実行されている場合は、おそらく LOAD_FILE()を使用できません。 。ケースを閉じました。

      理論的には、 FTPを使用できます またはSFTP MySQLが実行されているコンピューターでファイルを転送しますが、同じセキュリティ上の理由から、おそらくそのコンピューターにアクセスできません。

    2. あなたの場合、PHPとMySQLの両方が同じコンピューターで実行されていると仮定すると、 /images/picture.jpg はURLのパスコンポーネントであり、ファイルシステム上のパスではありません。 dirname()を使用できます および __ DIR __ imagesへのパスを作成します 現在のスクリプトのパスから始まるディレクトリ。

    3. MySQLサーバーへの接続に使用するユーザーは、ファイル 特権。特権はDBAによってユーザーに付与されます。

    4. ファイルはすべての人が読み取れる必要があります。これが最も簡単な部分です。 ls -lを実行すると ファイルでは、ファイル権限の列の最後の3つの記号は rw-である必要があります またはr- (実行可能ビットを設定しても意味がありません)。

    5. max_allowed_pa​​cket<のデフォルト値/ code> システム変数は4MiBです しかし、DBAはそれを変更することができます。 SELECT @@ max_allowed_pa​​cket FROM dualを実行できます 現在の値を確認します。

    6. secure_file_priv> システム変数が設定されている場合、指定するパスはこのディレクトリからの相対パスである必要があります。ここでも、 SELECT @@ secure_file_priv FROM dualを実行できます。 現在の値を見つけるために。




    1. SSL経由でPostgreSQLデータベースに接続するにはどうすればよいですか?

    2. トロフィーの数とポイントが固定されているプレーヤーを選択します

    3. PDO ::PARAM_INTは冗長ですか?

    4. oracle-oracleテーブルの複数のコンマ区切り値を複数の行に分割します