GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengikat server MySQL ke lebih dari satu alamat IP?

Solusi 1:

Tidak ada (saya baru cek 1 jam yang lalu). Anda dapat mengomentari alamat bind di my.cnf:

Catatan:« 1 jam yang lalu » sekarang lebih dari 10 tahun yang lalu.

#skip-networking
#bind-address                   = 127.0.0.1

Jika Anda hanya menginginkan 2 IP, Anda harus menggunakan firewall.

Untuk MySql versi 8.0.13 dan yang lebih baru , Anda dapat menentukan daftar alamat IP yang dipisahkan koma.

bind-address = 10.0.0.1,10.0.1.1,10.0.2.1

Dokumentasi MySql yang relevan.

Solusi 2:

Mengikat ke 127.0.0.x tidak akan membuatnya tersedia untuk semua perangkat, itu hanya akan tersedia secara lokal. Jika Anda ingin membuatnya tersedia untuk semua antarmuka, Anda harus menggunakan 0.0.0.0. Jika Anda ingin mengaksesnya dari lebih dari satu, tetapi kurang dari semua antarmuka, Anda harus mengikat ke 0.0.0.0 dan mem-firewall dari antarmuka yang tidak ingin Anda akses.

Selain itu, sebagai lapisan keamanan kedua, Anda harus memastikan bahwa semua pengguna MySQL Anda memiliki kolom host yang disetel ke selain % (yakni host apa pun).

Solusi 3:

Anda tidak dapat mengikat ke lebih dari satu alamat IP, tetapi Anda dapat mengikat ke semua alamat IP yang tersedia. Jika demikian, gunakan saja 0.0.0.0 untuk alamat pengikatan di file konfigurasi MySQL Anda (mis. /etc/mysql/my.cnf) sebagai berikut:

bind-address    = 0.0.0.0

Jika alamatnya adalah 0.0.0.0, server menerima koneksi TCP/IP pada semua antarmuka IPv4 host server.

Selanjutnya jika alamatnya adalah :: , server menerima koneksi TCP/IP pada semua host server antarmuka IPv4 dan IPv6. Gunakan alamat ini untuk mengizinkan koneksi IPv4 dan IPv6 di semua antarmuka server.

Atau Anda cukup mengomentari bind-address= sama sekali, sehingga akan mengikat ke semua alamat. Tapi pastikan Anda tidak memiliki skip-networking diaktifkan di my.cnf Anda jika Anda juga ingin mengizinkan koneksi jarak jauh (Baca selengkapnya:MySQL:Izinkan koneksi jarak jauh DAN lokal).

Setelah mengubah alamat pengikatan, jangan lupa untuk me-restart server MySQL Anda dengan:

sudo service mysql restart

Akhirnya Anda dapat mempertimbangkan untuk menjalankan beberapa instance MySQL pada satu mesin (port berbeda) dengan replikasi Master/Slave. Replikasi memungkinkan data dari satu server database MySQL (master) untuk disalin ke satu atau lebih server database MySQL (slave).

Baca selengkapnya:

  • 5.3 Menjalankan Beberapa Instance MySQL di Satu Mesin di MySQL.com
  • Bab 17 Replikasi di MySQL.com

Solusi 4:

Tidak Anda tidak bisa. Halaman yang Anda tautkan dengan jelas menyatakan:

Alamat IP yang akan diikat. Hanya satu alamat yang dapat dipilih. Jika opsi ini ditentukan beberapa kali, alamat terakhir yang diberikan akan digunakan.

Jika tidak ada alamat atau 0.0.0.0 yang ditentukan, server mendengarkan semua antarmuka.

Solusi 5:

Seperti yang telah dijawab orang lain, belum ada cara untuk mengikat secara selektif ke lebih dari satu antarmuka.

Linux memiliki beberapa alat TCP yang memungkinkan. Dalam penyiapan ini, Anda akan mengonfigurasi mysql untuk mendengarkan pada 127.0.0.1 lalu menggunakan redir untuk mengeksposnya pada antarmuka arbitrer.

Saya telah menggunakan ini untuk membantu tamu kotak virtual melihat mysql terinstal di mesin host.

redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &

Linux
  1. Cara Menginstal MySQL 8.0 / 5.7 di Debian 11 / Debian 10

  2. Cara Menginstal Server MySQL di Debian 9

  3. Cara Menginstal Server MySQL di Ubuntu 16.04

  1. Cara Menginstal Server MySQL di Ubuntu 17.04

  2. Bagaimana Membagi Terminal Menjadi Lebih dari Satu "tampilan"?

  3. Cara Menginstal MySQL di Ubuntu 16.04

  1. Cara mengonfigurasi Database Budak MySQL

  2. Cara Mengkonfigurasi Beberapa Server MySQL Pada Satu Sistem Menggunakan mysqld_multi

  3. Bagaimana cara memigrasikan server BIND DNS ke perangkat keras baru?