MySQL で LOAD DATA INFILE のアクセスが拒否されました
MySQL で LOAD DATA INFILE ステートメントを使用すると、次のようなアクセス拒否エラーが発生することがあります。 「#1045 - ユーザー 'user'@'localhost' のアクセスが拒否されました (パスワード: YES を使用)。」
このエラーは通常、クエリを実行している現在のユーザーに、データをロードするための十分な権限がないことを示します。ファイルをテーブルに追加します。この問題を解決するには、ユーザーが必要な権限を持っていることを確認してください。
特に、ユーザーには FILE 権限が付与されている必要があります。この権限により、ユーザーはサーバーのファイル システムからファイルを読み取ることができます。この権限がないと、ユーザーは指定されたファイルにアクセスできません。
ユーザーに FILE 権限を付与するには、次のクエリを実行します。
<code class="sql">GRANT FILE ON *.* TO user_name;</code>
user_name をユーザー名に置き換えます。
さらに、LOAD DATA INFILE ステートメントに LOCAL キーワードを追加することを検討してください。 LOCAL キーワードは、サーバーのファイル システムではなくクライアント マシンからファイルを読み取るように MySQL に指示します。場合によっては、この方が効率的で安全です。
LOCAL を使用して変更されたステートメントの例を次に示します。
<code class="sql">LOAD DATA LOCAL INFILE 'path/to/file.csv' INTO TABLE table_name;</code>
以上がMySQL で LOAD DATA INFILE を使用すると「アクセスが拒否されました」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。