Soalan:
Apabila cuba menyambung ke pangkalan data MySQL dari jauh menggunakan akaun 'user@'%', isu sambungan timbul walaupun berjaya menyambung menggunakan 'user@'localhost'. Mengapakah '%' tidak membenarkan sambungan daripada mana-mana hos?
Jawapan:
Untuk mewujudkan sambungan jauh, ikut langkah berikut:
1. Konfigurasi Alamat Bind MySQL:
Edit fail my.cnf (my.ini pada Windows) dan tetapkan parameter bind-address kepada alamat IP mesin anda:
bind-address = xxx.xxx.xxx.xxx
2. Cipta Pengguna Kad Liar dan Berikan Kebenaran:
Laksanakan arahan berikut:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass'; CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
GRANT ALL ON *.* TO 'myuser'@'localhost'; GRANT ALL ON *.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
3. Buka Port Sambungan Jauh:
Bergantung pada sistem pengendalian anda, mungkin perlu membuka port 3306 untuk membenarkan sambungan jauh.
Penjelasan:
'%' membenarkan sambungan daripada mana-mana hos. Walau bagaimanapun, untuk sambungan jauh, MySQL mesti dikonfigurasikan untuk mengikat alamat IP yang sesuai. Selain itu, pengguna mesti dicipta dengan kedua-dua keistimewaan 'localhost' dan '%' yang diberikan untuk semua pangkalan data.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung Dari Jauh ke MySQL Menggunakan Kad Liar '%'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!