Pertanyaan Server MySQL tidak dapat diakses dari mesin remote


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 hal berikut

LAYANAN PORT STATE
22 / tcp buka ssh
80 / tcp buka http
139 / tcp membuka netbios-ssn
445 / tcp membuka microsoft-ds
631 / tcp ipp terbuka
3306 / tcp membuka mysql

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

LAYANAN PORT STATE
22 / tcp buka ssh
80 / tcp buka http
139 / tcp membuka netbios-ssn
445 / tcp membuka microsoft-ds

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

Saya telah mencoba kode berikut, tetapi sepertinya tidak berhasil.

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

Apa yang salah disini?


12
2017-07-03 11:04


asal




Jawaban:


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

  1. sebagai root, buka file Anda /etc/mysql/my.cnf dengan editor favorit Anda
  2. mencari [mysqld] bagian, dan di sana untuk bind-address kata kunci. Ini biasanya diatur ke 127.0.0.1 - ubah itu agar cocok dengan alamat IP "normal" Anda
  3. simpan file, dan muat ulang layanan (mis. menggunakan service mysql restart)

Ingat Anda harus memungkinkan pengguna jarak jauh 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 manapun".


20
2017-07-03 11:20



Senang dibaca - dan Anda disambut! - Izzy
tautan rusak :( - dino
@dino Tidak lagi. Saya perbaiki itu dan juga termasuk kutipan, jadi jika mati lagi langkah-langkah yang diperlukan masih ada di sini. Keburukan saya saya tidak melakukannya dari awal - tetapi seperti yang Anda lihat dari cap waktu, itu adalah salah satu jawaban awal saya. Kita semua belajar :) - Izzy
Bidang bind-address berada di bawah /etc/mysql/mysql.conf.d/mysqld.cnf untuk sistem saya. - Eric G
@EricG Terima kasih atas penunjuknya. Jawaban saya adalah 5 tahun yang lalu, jadi konfigurasi telah berubah sedikit (dan mungkin dibuat lebih modular). - Izzy