Saya memiliki dua server VPS , dan keduanya telah menginstal MySQL , satu untuk pengujian dan satu untuk pengembangan. Salah satu server saya tidak akan membiarkan saya terhubung dari luar. Dengan pengguna;
'mytestuser' @ '%'
Menurut pencari port terbuka , port 3306 untuk server yang melanggar tampaknya ditutup. Saya memiliki program C ++ dan Java untuk mendengarkan saya sendiri pada port arbitrer tanpa masalah. Mengapa ini terjadi dan bagaimana saya bisa memperbaikinya?
Ubuntu yang diinstal adalah Ubuntu 11.10 (GNU / Linux 2.6.32-042stab072.10 x86_64)
Hasil netstat -tuple
di setiap server
Server menyinggung
tcp 0 0 localhost.lo:submission *:* LISTEN root 39967664 -
Server yang bekerja
tcp 0 0 *:mysql *:* LISTEN mysql 1847519288 -
/etc/mysql/my.cnf
, bukan/etc/mysql/my.conf
.Saran saya, jika Anda yakin port ditutup (saya merasa aneh jika VPS menutup port itu) adalah mengubah file konfigurasi MySQL untuk menggunakan yang lain.
Cukup buka file konfigurasi di terminal
sudo nano /etc/mysql/mysql.conf
,, dan cari[mysqld]
bagian tersebut. Di dalamnya, cari baris yang berbunyiport = 3306
. Ubah ke port lain yang tidak digunakan dan simpan file.Kemudian cukup restart VPS atau restart layanan, seperti
sudo service mysql restart
.Hanya untuk mencatat bahwa, jika file
mysql.conf
tidak dalam yang saya sebutkan di atas, bisa di tempat lain ini:Dan jika
service
perintah itu tidak berhasil, maka lakukan ini:Jika masalah tetap ada maka dalam kasus saya saya akan memeriksa iptables (saya benar-benar akan menghapus semua yang ada di iptables hanya untuk memulai yang baru jika ini bisa menjadi pilihan) atau opsi yang diaktifkan firewall lainnya.
Karena mereka VPS, saya juga akan memeriksa Panel Kontrol VPS untuk melihat apakah ada opsi yang dapat memblokir port.
Selain itu, saya akan menjalankan
nmap
VPS untuk melihat port apa yang telah Anda buka. Anda perlu menjalankannya dari luar VPS untuk melihat port apa yang telah dibuka.netstat -tuplen
juga merupakan ide bagus untuk melihat port apa yang dibuka di server dan port mana yang dalam mode DENGARKAN.sumber
Saya memperbaikinya dengan mengubah
bind-address 127.0.0.1
kebind-address 0.0.0.0
dalam/etc/mysql/mysql.conf.d
(sehingga MySQL mendengarkan pada semua port).Saya juga mengatur akun pengguna mysql untuk digunakan dari jarak jauh (lihat https://stackoverflow.com/a/24171107/132374 ).
sumber
Saya menggunakan metode ini:
Tidak perlu mengubah file konfigurasi lainnya, dan tidak ada port tambahan yang dibuka secara default.
sumber
sudo ufw allow 3306/tcp
Saya mencoba mengedit tetapi tidak membiarkan sayaMungkin saja konfigurasi Anda ada di direktori
/etc/mysql/mysql.conf.d/mysqld.cnf
, verifikasi jika bukan itu masalahnya.sumber