Berikut adalah daftar periksa cepat untuk mengaktifkan Remote Connections untuk MySQL tetapi baca (6) terlebih dahulu. Jika saya melewatkan sesuatu, silakan edit.
1) Pengguna jarak jauh Anda terhubung melalui akun yang dibuat dengan user,host
yang sesuai entri (lihat output dari select user,host from mysql.user order by 1,2
). Jika tidak, lihat CREATE USER
dan/atau GRANT
perintah. Periksa output dari SHOW GRANTS
untuk pengguna.
2) Anda telah melakukan flush privileges;
(Beberapa mengatakan itu tidak perlu, yang lain mengatakan itu).
3a) Temukan file konfigurasi mysql Anda yang dirujuk dalam 3b) di bawah dengan meninjau info di Dokumen Ini
(atau untuk Windows, kemungkinan turun C:\ProgramData\MySQL\MySQL Server 5.NNN
jalur). Ini bervariasi menurut distro untuk Linux.
3b) Anda telah memodifikasi dan menyimpan my.ini
(Windows) atau my.cnf
(Linux) dan mengubah bind-address
jauh dari 127.0.0.1
atau localhost
, mendukung 0.0.0.0
. Dan Anda telah membuat dan keluarkan baris berikut:#skip-networking
. Ini akan terlihat seperti ini:
[mysqld]
bind-address=0.0.0.0
#skip-networking
4) Mulai ulang daemon mysql. Cara melakukannya bervariasi menurut distro.
5) Masalah firewall. Pastikan portnya, defaultnya adalah 3306
, terbuka untuk dunia luar (yang mungkin sebenarnya hanya intranet Anda). Ini termasuk lapisan firewall lainnya, seperti Grup Keamanan AWS EC2, atau yang serupa, jika ada.
6) Pahami bahwa ada risiko keamanan yang terkait dengan ini. Kecuali Anda memiliki pengetahuan tentang mengekspos server mysql Anda ke koneksi jarak jauh, jangan lakukan ini.
7) Harap sering menjalankan penilaian keamanan dengan select
pernyataan yang tercantum dalam 1. di atas termasuk meninjau SHOW GRANTS
untuk para pengguna tersebut. Jangan memberi pengguna wildcard secara berlebihan jika tidak perlu. Sebaliknya, berikan pengguna hak istimewa minimal untuk menyelesaikan pekerjaannya.
8) Sering memeriksa upaya koneksi yang gagal melalui Log Umum dan Log Kesalahan seperti yang diperkenalkan secara singkat di bawah ini.
Untuk inbound, Anda dapat melihat log kueri umum.
select @@general_log; -- a 1 indicates it is turned on for capture
select @@general_log_file; -- the file that it logs to
Jadi semua kueri bisa login ke Log Kueri Umum
jika pengaturan diaktifkan. Periksa log untuk "terhubung", tetapi terutama untuk Access denied for user
untuk melihat upaya yang gagal. Lakukan ini secara teratur (tidak setiap beberapa tahun). Saya melakukannya setidaknya dua kali sehari. Catatan, Anda jelas dapat mengotomatiskan pelaporan melalui program eksternal. Dunia luar akan berdebar server Anda untuk masuk seperti gambar di bawah ini. Ini adalah kenyataan; persiapkan diri Anda untuk itu.
Lihat halaman manual untuk Log Kesalahan juga, dengan memperhatikan tingkat peringatan, dan pengaturan verbositas berdasarkan versi Anda.
Saya akan merekomendasikan seseorang untuk membuat salinan cadangan berdasarkan tanggal (dinamai demikian) dan menghapus file log setelah pencadangan untuk memulai yang baru setelah pencadangan. File log dapat bertambah besar ukurannya dengan cepat, terutama Log Umum. Jangan lupa apakah Anda mengaktifkan atau menonaktifkan setelan untuk masuk.
Anda dapat menggunakan dua log untuk menentukan apakah upaya koneksi Anda berhasil melewati firewall selama langkah-langkah di sini.