Rumah > Artikel > pangkalan data > Mengapa Saya Mendapat \"Akses Ditolak\" Apabila Menggunakan LOAD DATA INFILE dalam MySQL?
Akses Ditolak untuk LOAD DATA INFILE dalam MySQL
Dalam MySQL, menggunakan pernyataan LOAD DATA INFILE boleh mengakibatkan ralat dinafikan akses, seperti sebagai "#1045 - Akses ditolak untuk pengguna 'pengguna'@'localhost' (menggunakan kata laluan: YA)."
Ralat ini biasanya menunjukkan bahawa pengguna semasa yang melaksanakan pertanyaan tidak mempunyai keistimewaan yang mencukupi untuk memuatkan data daripada fail ke dalam jadual. Untuk menyelesaikan isu ini, pastikan pengguna mempunyai kebenaran yang diperlukan.
Khususnya, pengguna perlu diberikan keistimewaan FILE. Keistimewaan ini membolehkan pengguna membaca fail daripada sistem fail pelayan. Tanpa keistimewaan ini, pengguna tidak akan dapat mengakses fail yang ditentukan.
Untuk memberikan keistimewaan FILE kepada pengguna, laksanakan pertanyaan berikut:
<code class="sql">GRANT FILE ON *.* TO user_name;</code>
Ganti user_name dengan nama pengguna daripada pengguna yang anda ingin berikan keistimewaannya.
Selain itu, pertimbangkan untuk menambah kata kunci TEMPATAN pada pernyataan LOAD DATA INFILE. Kata kunci LOCAL mengarahkan MySQL untuk membaca fail daripada mesin klien dan bukannya sistem fail pelayan. Ini boleh menjadi lebih cekap dan selamat dalam sesetengah kes.
Berikut ialah contoh pernyataan yang diubah suai menggunakan LOCAL:
<code class="sql">LOAD DATA LOCAL INFILE 'path/to/file.csv' INTO TABLE table_name;</code>
Atas ialah kandungan terperinci Mengapa Saya Mendapat \"Akses Ditolak\" Apabila Menggunakan LOAD DATA INFILE dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!