ホームページ  >  記事  >  データベース  >  MySQL で LOAD DATA INFILE を使用すると「アクセスが拒否されました」というメッセージが表示されるのはなぜですか?

MySQL で LOAD DATA INFILE を使用すると「アクセスが拒否されました」というメッセージが表示されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-30 11:33:02659ブラウズ

Why Am I Getting

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。