Percubaan akses jauh ke pelayan MySQL gagal dengan ralat yang ditolak akses, walaupun memberikan keistimewaan jauh kepada pengguna.
Untuk menerima sambungan jauh dalam MySQL versi 5.6 dan ke bawah, pastikan baris berikut tidak dikomen dalam /etc/mysql/my.cnf:
#Replace xxx with your IP Address bind-address = xxx.xxx.xxx.xxx
Sebagai alternatif, gunakan bind- alamat = 0.0.0.0 untuk membenarkan sambungan dari mana-mana IP.
Untuk versi MySQL 5.7 dan ke atas, ubah suai alamat bind dalam /etc/mysql/mysql.conf.d/mysqld.cnf.
Mulakan semula MySQL dan sahkan alamat bind yang dikemas kini menggunakan lsof -i -P | grep :3306. Ia harus mengembalikan alamat IP untuk pelayan anda.
Buat pengguna jauh dengan keistimewaan yang sesuai dalam localhost dan %:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass'; CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
Grant kebenaran yang diperlukan:
GRANT ALL ON *.* TO 'myuser'@'localhost'; GRANT ALL ON *.* TO 'myuser'@'%';
Akhir sekali, siram keistimewaan dan keluar:
FLUSH PRIVILEGES; EXIT;
Jika tidak berjaya, semak mesej ralat tambahan atau semak konfigurasi my.cnf. Pertimbangkan untuk memasang lsof untuk menyelesaikan masalah jika ia tidak tersedia.
Jika perubahan alamat bind dalam my.cnf tidak menyelesaikan isu, cuba ubah suai dalam /etc/mysql/ mariadb.conf.d/50-server.cnf, tempat ia diisytiharkan pada asalnya.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengakses Dari Jauh Pelayan MySQL Saya di Ubuntu, dan Bagaimana Saya Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!