Apakah ada cara rahasia untuk mengikat MySQL ke lebih dari satu alamat IP?
Sejauh yang saya bisa lihat parameter bind-address di my.cnf tidak mendukung lebih dari satu IP dan Anda tidak dapat memilikinya lebih dari sekali.
linux
mysql
ip
configuration
BlaM
sumber
sumber
socket
danbind-address
opsi.Mengikat ke 127.0.0.x tidak akan membuatnya tersedia untuk semua perangkat, itu akan membuatnya tersedia secara lokal saja. 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 firewall dari antarmuka yang Anda tidak ingin diakses melalui.
Selain itu, sebagai lapisan kedua keamanan, Anda harus memastikan bahwa semua pengguna MySQL Anda memiliki bidang host yang disetel ke sesuatu selain% (yaitu host mana pun).
sumber
INADDR_ANY (0.0.0.0) means any address for binding;
?/etc/mysql/conf.d/bindaddress.cnf
file dengan konten[mysqld] \n bind-address = 0.0.0.0
Anda tidak dapat mengikat lebih dari satu alamat IP, tetapi Anda dapat mengikat semua alamat IP yang tersedia. Jika demikian, cukup gunakan
0.0.0.0
untuk alamat yang mengikat di file konfigurasi MySQL Anda (mis. /Etc/mysql/my.cnf) sebagai berikut:Jika alamatnya adalah 0.0.0.0, server menerima koneksi TCP / IP pada semua antarmuka host server IPv4.
Selanjutnya jika alamatnya adalah
::
, server menerima koneksi TCP / IP pada semua antarmuka host server IPv4 dan IPv6. Gunakan alamat ini untuk mengizinkan koneksi IPv4 dan IPv6 pada semua antarmuka server.Atau Anda bisa langsung berkomentar
bind-address=
, jadi itu akan mengikat ke semua alamat. Tetapi pastikan Anda tidakskip-networking
mengaktifkan di my.cnf Anda jika Anda juga ingin mengizinkan koneksi jarak jauh (Baca lebih lanjut: MySQL: Izinkan koneksi jarak jauh DAN lokal ).Setelah mengubah alamat yang mengikat, jangan lupa untuk me-restart server MySQL Anda dengan:
Akhirnya Anda dapat mempertimbangkan untuk menjalankan beberapa instance MySQL pada satu mesin (port yang berbeda) dengan replikasi Master / Slave. Replikasi memungkinkan data dari satu server database MySQL (master) untuk disalin ke satu atau lebih server database MySQL (para budak).
Baca lebih lajut:
sumber
Tidak Anda tidak bisa. Halaman yang Anda tautkan dengan jelas menyatakan:
sumber
Seperti yang telah dijawab orang lain, belum ada cara untuk secara selektif mengikat lebih dari satu antarmuka.
Linux memiliki beberapa alat TCP yang memungkinkan. Dalam pengaturan ini, Anda akan mengonfigurasi mysql untuk mendengarkan pada 127.0.0.1 dan kemudian menggunakan redir untuk mengeksposnya pada antarmuka yang sewenang-wenang.
Saya telah menggunakan ini untuk membantu tamu kotak virtual melihat mysql diinstal pada mesin host.
sumber
Saya pikir pertanyaan Anda terkait dengan bug ini http://bugs.mysql.com/bug.php?id=14979 Laporan bug menyarankan beberapa solusi.
sumber
Sumber: https://dev.mysql.com/doc/refman/8.0/en/server-options.html
sumber
Dalam perubahan my.cnf (biasanya /etc/mysql/my.cnf di Linux atau untuk windows periksa jawaban ini .
untuk
Kemudian restart mysql (di layanan Ubuntu mysql restart ) di windows biasanya layanan restart melalui Win + R services.msc
0.0.0.0 memberitahukannya untuk mengikat semua IP yang tersedia dengan port yang juga diberikan di my.cnf
sumber