Rumah >pangkalan data >tutorial mysql >Mengapakah Saya Mendapat Ralat \'Akses Ditolak\' MySQL untuk Pengguna \'test2\'@\'localhost\'?

Mengapakah Saya Mendapat Ralat \'Akses Ditolak\' MySQL untuk Pengguna \'test2\'@\'localhost\'?

Susan Sarandon
Susan Sarandonasal
2024-11-30 05:46:14884semak imbas

Why am I Getting a MySQL

MySQL Access Denied Ralat: 'test2'@'localhost'

Apabila menghadapi ralat "SQLSTATE[HY000] [1045] Access dinafikan untuk pengguna 'test2'@'localhost'", ia menunjukkan bahawa percubaan sambungan ke pangkalan data MySQL sebagai pengguna 'test2' daripada hos 'localhost' telah gagal kerana isu kelayakan atau kebenaran.

Punca Asas

Ralat ini boleh berlaku atas beberapa sebab:

  • Kelayakan Tidak Betul: Pastikan nama pengguna 'test2' dan kata laluan 'komputer' yang disediakan dalam konfigurasi aplikasi (app.php) adalah sah.
  • Pengguna Tidak Dicipta: Sahkan bahawa pengguna MySQL bernama 'test2' wujud pada pangkalan data anda. Anda boleh menyemak ini dengan melaksanakan pertanyaan berikut sebagai pengguna istimewa (cth., root):

    SELECT user, host FROM mysql.user WHERE user = 'test2';

    Jika pertanyaan tidak mengembalikan baris, pengguna itu tidak wujud.

  • Sekatan Akses Pengguna: Walaupun pengguna wujud, ia mungkin tidak mempunyai keistimewaan yang mencukupi untuk menyambung ke pangkalan data atau akses pangkalan data yang ditentukan (pekerjaan). Semak keistimewaan yang diberikan kepada pengguna untuk pangkalan data pekerjaan.

Langkah Penyelesaian Masalah

Untuk menyelesaikan isu ini, ikut langkah berikut:

  1. Sahkan Bukti Kelayakan: Masukkan semula nama pengguna dan kata laluan untuk memastikan ianya betul.
  2. Buat Pengguna Pangkalan Data (jika tiada): Jika pengguna 'test2' tidak ditemui, buatnya menggunakan pertanyaan berikut:

    CREATE USER 'test2'@'localhost' IDENTIFIED BY 'computer';
  3. Berikan Keistimewaan: Pastikan pengguna 'test2' mempunyai keistimewaan yang diperlukan untuk mengakses pangkalan data pekerjaan. Jalankan pertanyaan berikut sebagai pengguna istimewa:

    GRANT SELECT, UPDATE, INSERT, DELETE ON jobs.* TO 'test2'@'localhost';
  4. Keistimewaan Flush: Selepas membuat perubahan pada keistimewaan, siramnya untuk memastikan ia berkuat kuasa:

    FLUSH PRIVILEGES;

Tambahan Pertimbangan

  • Semak nilai hos dalam rentetan sambungan. Ia sepatutnya sepadan dengan hos tempat pelayan MySQL anda sedang berjalan. Dalam kes ini, 'localhost' adalah betul jika anda menyambung ke pangkalan data pada mesin yang sama.
  • Lumpuhkan sebarang tembok api atau perisian antivirus yang mungkin menyekat sambungan.
  • Pertimbangkan untuk menukar nama hos untuk pengguna pangkalan data kepada '%', yang membenarkan sambungan daripada mana-mana hos. Walau bagaimanapun, ini kurang selamat daripada menyatakan nama hos tertentu.

Atas ialah kandungan terperinci Mengapakah Saya Mendapat Ralat \'Akses Ditolak\' MySQL untuk Pengguna \'test2\'@\'localhost\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn