Masalah:
Apabila mencuba untuk menyambung ke pelayan MySQL dari jauh, pengguna menghadapi ralat "Hos 'xxx.xx.xxx.xxx' tidak dibenarkan menyambung ke pelayan MySQL ini," walaupun mempunyai kebenaran pengguna yang sesuai dalam pangkalan data.
Punca Kemungkinan:
Ralat ini selalunya berpunca daripada langkah berjaga-jaga keselamatan atau kebenaran pengguna yang salah konfigurasi.
Penyelesaian:
1. Tambah Akaun Pentadbir Baharu:
Buat akaun pentadbir khusus dengan akses terhad:
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' -> WITH GRANT OPTION;
2. Ubah suai Kebenaran Pengguna Sedia Ada:
Edit kebenaran pengguna untuk pengguna 'root' sedia ada, memberikan keistimewaan yang lebih sedikit dan mengehadkan akses kepada hos tertentu:
mysql> REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%'; mysql> GRANT SELECT, UPDATE ON table_name TO 'root'@'specific_ip';
3. Alih Keluar Kebenaran Kad Liar:
Padamkan sebarang entri pengguna dalam pangkalan data yang mengandungi aksara kad bebas (%) atau (_). Gantikannya dengan nilai hos tertentu.
4. Keistimewaan Flush:
Selepas membuat sebarang perubahan pada kebenaran pengguna, ingat untuk mengeluarkan kenyataan FLUSH PRIVILEGES untuk memuat semula jadual pemberian:
mysql> FLUSH PRIVILEGES;
Nota:
Secara amnya tidak digalakkan untuk memberikan keistimewaan yang berlebihan (cth., SEMUA KEISTIMEWAAN DIHIDUPKAN .) kepada pengguna yang hanya memerlukan akses terhad. Pertimbangkan untuk memberikan hanya kebenaran minimum yang diperlukan untuk peranan khusus mereka.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 'Hos 'xxx.xx.xxx.xxx' Tidak Dibenarkan Menyambung'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!