MySQL エラー 1290: Secure File Private Option Blocking Data Export
INTO OUTFILE を使用したファイルへのデータ エクスポートを伴う MySQL ステートメントの実行時句を使用すると、「エラー コード: 1290。MySQL サーバーは --secure-file-priv オプションを使用して実行されているため、このステートメントを実行できません。」というエラーが発生する場合があります。これは、ファイル操作を制限する強化されたセキュリティ対策がサーバーに設定されている場合に発生します。
Secure File Private オプションの説明
--secure-file-priv オプションの制限MySQL サーバー内のファイル アクセスと権限。デフォルトでは、このオプションは有効になっており、ファイル操作に許可される唯一の場所として特定のディレクトリが割り当てられます。この指定されたディレクトリ以外のファイルにアクセスまたは書き込みしようとすると、エラー 1290 が発生します。
簡単な解決策: 許可されたディレクトリへのパスを制限します
変更せずにこのエラーを解決するにはサーバー設定では、ユーザーは INTO OUTFILE 句で許可されたディレクトリを明示的に指定できます。
SELECT * FROM xxxx WHERE XXX INTO OUTFILE '<path/to/permitted/directory>/report.csv' FIELDS TERMINATED BY '#' ENCLOSED BY '"' LINES TERMINATED BY '\n'
代替解決策:
これには、MySQL 構成ファイル (通常は my.ini または my.cnf) を編集する必要があります。 secure_file_priv オプションをコメントアウトまたは削除するか、空の文字列 (``) に設定します。ただし、これによりサーバーのセキュリティが低下するため、制御された環境でのみ実行する必要があります。
ファイル アクセスが必要な場合許可されたディレクトリを超えて、実行ユーザーに FILE 権限を付与できます。これは、次の SQL ステートメントを使用して実行できます:
GRANT FILE ON *.* TO <username>@'<host>';
以上がMySQL エラー 1290 を修正する方法: 「MySQL サーバーは --secure-file-priv オプションを使用して実行されているため、このステートメントを実行できません」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。