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

Apakah ada cara rahasia untuk mengikat MySQL untuk lebih dari satu alamat IP?

Sejauh yang saya bisa melihat bind-address parameter pada saya.cnf tidak mendukung lebih dari satu IP dan anda dapat't memiliki lebih dari sekali.

Larutan

Tidak, ada isn't (saya hanya diperiksa 1 jam yang lalu). Anda dapat memberikan komentar bind-address saya.cnf:

#skip-networking
#bind-address                   = 127.0.0.1

Jika anda ingin hanya 2 IPs, maka anda akan memiliki untuk menggunakan firewall.

Komentar (11)

Mengikat 127.0.0.x won't membuat ini tersedia untuk semua perangkat, itu akan membuatnya tersedia secara lokal saja. Jika anda ingin membuatnya tersedia untuk semua interface, anda harus menggunakan 0.0.0.0. Jika anda ingin mengaksesnya dari lebih dari satu, tetapi kurang dari semua interface, anda harus mengikat ke 0.0.0.0 dan firewall dari interface anda don't ingin dapat diakses melalui.

Juga, sebagai lapisan kedua dari keamanan, anda harus memastikan bahwa semua pengguna MySQL memiliki host bidang diatur ke sesuatu yang lain dari % (yaitu setiap host).

Komentar (6)

Anda dapat't mengikat lebih dari satu alamat IP, tetapi anda dapat mengikat semua alamat IP yang tersedia sebagai gantinya. Jika demikian, hanya menggunakan 0.0.0.0 untuk mengikat alamat di MySQL file konfigurasi (misalnya /etc/mysql/my.cnf) sebagai berikut:

bind-address    = 0.0.0.0

Jika alamat 0.0.0.0, server menerima koneksi TCP/IP pada semua server host IPv4 interface.

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

Atau anda hanya bisa komentar bind-address= sama sekali, sehingga akan mengikat ke semua alamat. Tapi pastikan bahwa anda don't memiliki skip-networking diaktifkan di saya.cnf jika anda ingin mengizinkan koneksi remote dan juga (Baca lebih lanjut: MySQL: Memungkinkan baik lokal DAN remote koneksi).

Setelah mengubah pengikatan alamat, don't lupa untuk me-restart server MySQL oleh:

sudo service mysql restart

Akhirnya anda dapat mempertimbangkan untuk menjalankan beberapa contoh dari MySQL pada satu mesin (port yang berbeda) dengan Master/Slave replikasi. Replikasi memungkinkan data dari satu database MySQL server (master) akan disalin ke satu atau lebih database MySQL-server (budak).

Baca lebih lanjut:

Komentar (1)

Tidak, anda tidak bisa. Halaman yang anda link untuk melihat jelas menyatakan:

alamat IP untuk mengikat. Hanya satu alamat dapat dipilih. Jika pilihan ini ditentukan beberapa kali, terakhir alamat yang diberikan digunakan.

Jika tidak ada alamat atau 0.0.0.0 ditentukan, server mendengarkan pada semua interface.

Komentar (0)

Yang lain menjawab, ada isn't cara namun untuk secara selektif mengikat lebih dari satu interface.

Linux memiliki beberapa TCP alat-alat yang membuat itu mungkin. Dalam konfigurasi ini, anda'd mengkonfigurasi mysql untuk mendengarkan pada 127.0.0.1 dan kemudian gunakan redir untuk mengekspos pada sewenang-wenang interface.

I've telah menggunakan ini untuk membantu virtual box guest lihat mysql diinstal pada mesin host.

redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &
Komentar (1)

Saya pikir pertanyaan anda terkait dengan bug ini http://bugs.mysql.com/bug.php?id=14979 Laporan bug menyarankan beberapa solusi.

Komentar (1)

Sebelum ke MySQL 8.0.13, --bind-address menerima satu nilai alamat, yang dapat menentukan satu non-wildcard alamat IP atau nama host, atau salah satu wildcard format alamat yang mengizinkan mendengarkan pada beberapa network interface (*, 0.0.0.0, atau ::).

pada MySQL 8.0.13, --bind-address menerima nilai tunggal seperti hanya dijelaskan, atau daftar nilai yang dipisahkan oleh koma. Ketika pilihan nama-nama daftar beberapa nilai, masing-masing nilai harus menentukan satu non-wildcard alamat IP atau nama host; tidak ada yang dapat menentukan wildcard alamat format (*, 0.0.0.0, atau ::).

Sumber: https://dev.mysql.com/doc/refman/8.0/en/server-options.html

Komentar (0)

Di saya.cnf perubahan (biasanya /etc/mysql/my.cnf di Linux atau windows check ini menjawab.

bind-address                   = 127.0.0.1

untuk

bind-address                   = 0.0.0.0

Kemudian restart mysql (pada Ubuntu service mysql restart) pada windows biasanya restart layanan thru Win+R jasa.msc

0.0.0.0 mengatakan itu untuk mengikat ke semua IP yang tersedia's dengan port juga diberikan pada saya.cnf

Komentar (0)