Untuk mengekspos MySQL ke selain localhost, Anda harus memiliki baris berikut
Untuk mysql versi 5.6 ke bawah
tidak /etc/mysql/my.cnf
diberi komentar dan ditetapkan ke alamat IP komputer Anda dan bukan loopback
Untuk mysql versi 5.7 ke atas
tidak /etc/mysql/mysql.conf.d/mysqld.cnf
diberi komentar dan ditetapkan ke alamat IP komputer Anda dan bukan loopback
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Atau tambahkan
bind-address = 0.0.0.0
jika Anda tidak ingin menentukan IP
Kemudian hentikan dan mulai ulang MySQL dengan entri my.cnf yang baru. Setelah berjalan, buka terminal dan masukkan perintah berikut.
lsof -i -P | grep :3306
Itu akan menghasilkan sesuatu seperti ini dengan IP Anda yang sebenarnya di xxx
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Jika pernyataan di atas kembali dengan benar, Anda kemudian akan dapat menerima pengguna jarak jauh. Namun agar pengguna jarak jauh dapat terhubung dengan hak istimewa yang benar, Anda harus membuat pengguna itu di localhost dan '%' seperti di.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
kemudian,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
dan akhirnya,
FLUSH PRIVILEGES;
EXIT;
Jika Anda tidak memiliki pengguna yang sama yang dibuat seperti di atas, saat Anda logon secara lokal Anda mungkin mewarisi hak istimewa localhost dasar dan memiliki masalah akses. Jika Anda ingin membatasi akses yang dimiliki myuser maka Anda perlu membaca sintaks pernyataan GRANT DI SINI Jika Anda berhasil melewati semua ini dan masih memiliki masalah, posting beberapa output kesalahan tambahan dan baris my.cnf yang sesuai.
CATATAN: Jika lsof tidak kembali atau tidak ditemukan, Anda dapat menginstalnya DI SINI berdasarkan distribusi Linux Anda. Anda tidak membutuhkan lsof untuk membuat segala sesuatunya bekerja, tetapi ini sangat berguna ketika sesuatu tidak bekerja seperti yang diharapkan.