Server MySQL tidak dapat diakses dari mesin jarak jauh


14

Saya telah menginstal server MySQL di server Ubuntu lokal saya (11.10). Saya tidak dapat terhubung ke server dari mesin jarak jauh.

Ketika saya mencoba: - nmap localhost , Ini menunjukkan yang berikut

LAYANAN NEGARA PELABUHAN
22 / tcp buka ssh
80 / tcp buka http
139 / tcp buka netbios-ssn
445 / tcp buka microsoft-ds
631 / tcp buka ipp
3306 / tcp buka mysql

Artinya 3306, port MySQL terbuka, kan? Tetapi ketika saya mencoba nmap 192.168.0.50, yang merupakan IP server, saya mendapatkan yang berikut: -

LAYANAN NEGARA PELABUHAN
22 / tcp buka ssh
80 / tcp buka http
139 / tcp buka netbios-ssn
445 / tcp buka microsoft-ds

Apakah ini berarti port tidak terbuka saat mengakses menggunakan IP? Jika demikian, bagaimana cara membuka porta?

Saya sudah mencoba kode berikut, tetapi sepertinya tidak berhasil.

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Apa yang salah di sini?

Jawaban:


22

Layanan MySQL Anda terikat untuk hanya melayani localhost (pengikatan antarmuka). Ini adalah standar untuk alasan keamanan. Jika Anda benar-benar perlu mengaksesnya langsung dari host lain, ada Cara bagus mengaktifkan akses jarak jauh ke MySQL di Ubuntu yang dapat Anda ikuti:

  1. sebagai root, buka Anda /etc/mysql/my.cnfatau /etc/mysql/mysql.conf.d/mysqld.cnf dengan editor favorit Anda, seperti pada sistem yang berbeda ditemukan berbeda.
  2. cari [mysqld]bagian, dan di sana untuk bind-addresskata kunci. Ini biasanya diatur ke 127.0.0.1- ubahlah agar cocok dengan alamat IP "normal" Anda
  3. simpan file, dan muat ulang layanan (misalnya menggunakan service mysql restart)

Ingat Anda harus mengaktifkan pengguna jarak jauh Anda untuk mengakses basis data mereka dari jarak jauh, dengan mengatur GRANT yang sesuai - mis

GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';

Perhatikan @'%', yang berarti "dari host mana pun".


Senang membaca - dan selamat datang!
Izzy

Tautan rusak :(
dino

2
@ tidak lagi. Saya memperbaikinya dan juga menyertakan kutipan, jadi jika mati lagi langkah-langkah yang diperlukan masih di sini. Sayangnya saya tidak melakukannya sejak awal - tetapi seperti yang Anda lihat dari cap waktu, itu adalah salah satu jawaban awal saya. Kita semua belajar :)
Izzy

2
Bidang bind-address berada di bawah /etc/mysql/mysql.conf.d/mysqld.cnfuntuk sistem saya.
Eric G

@EricG Terima kasih atas penunjuknya. Jawaban saya adalah 5 tahun yang lalu, jadi konfigurasi telah sedikit berubah (dan mungkin membuat lebih modular).
Izzy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.