Soru MySQL sunucusunu birden fazla IP adresine nasıl bağlarım?


MySQL'i birden fazla IP adresine bağlamak için gizli bir yol var mı?

Görebildiğim kadarıyla bind-address my.cnf dosyasındaki parametre birden fazla IP'yi desteklemez ve bir kereden fazla olamaz.


246
2017-09-02 16:04


Menşei




Cevaplar:


Hayır, yok (1 saat önce kontrol ettim). Bağlantı adresini my.cnf dosyasında yorumlayabilirsiniz:

#skip-networking
#bind-address                   = 127.0.0.1

Sadece 2 IP istiyorsan, bir güvenlik duvarı kullanmalısın.


229
2017-09-02 16:08



Doğru. Bağlama 0, 1 ile sınırlıdır veya herşey Sunucudaki IP adresleri. - Joe
Ancak, her ikisini de belirterek hem yerel bir unix soketi hem de bir ağ soketi yayınlayabileceğiniz ve sunabileceğine dikkat edin. socket ve bind-address seçenekler. - danorton
bugün itibariyle hala doğru. - Dennis Nolte
Bu çok saçma. - Phillipp
@AJP Mysql, "localhost" ve "127.0.0.1" i ayrıcalık sisteminden farklı şekilde ele alır. Burada doğrulandı: Bir ana bilgisayar adı belirtmezseniz veya özel ana bilgisayar adı localhost belirtirseniz, Unix soket dosyası kullanılır. - Christian Lescuyer


127.0.0.x dosyasına bağlanması, tüm cihazlara sunulmayacaktır, sadece yerel olarak kullanılabilir hale getirecektir. Tüm arayüzler için kullanılabilir hale getirmek isterseniz, 0.0.0.0 kullanmalısınız. Birden fazla, ancak tüm arayüzlerden daha azına erişmek istiyorsanız, 0.0.0.0'a bağlanmanız ve güvenlik duvarı üzerinden erişilmesini istemediğiniz arayüzleri kapatmanız gerekir.

Ayrıca, ikinci bir güvenlik katmanı olarak, tüm MySQL kullanıcılarınızın ana bilgisayar alanının% (yani herhangi bir ana bilgisayar) dışında bir şeye ayarlandığından emin olmalısınız.


76
2017-09-02 16:29



Bozuk bir ağ yığınınız olmadıkça, 0.0.0.0 adresini adreslemek için bir TCP bağlantı noktasını bağlayamazsınız. - John Gardeniers
Sen kutu 0.0.0.0'a bağlanır. Sadece ona gidemezsin. Linux'ta (veya Windows'ta bile, sadece windows için netcat'i kurun) deneyin: bir terminalde: nc -l 0.0.0.0 4321 ve ikinci bir terminalde: telnet <herhangi bir arabirimin IP'si> 4321 ve ona bağlanır. - Grey Panther
Dediğim gibi, kırık bir ağınız yoksa ... - John Gardeniers
@JohnGardeniers Bu neden, özel adresler altında tanımlanmış linux ip (7) man sayfasında bulunuyor: INADDR_ANY (0.0.0.0) means any address for binding;? - ebyrob
Debian'da bir dosya oluştur /etc/mysql/conf.d/bindaddress.cnf içerikli dosya [mysqld] \n bind-address = 0.0.0.0 - Yves Martin


Birden fazla IP adresine bağlanamazsınız, ancak bunun yerine tüm kullanılabilir IP adreslerine bağlayabilirsiniz. Eğer öyleyse, sadece kullan 0.0.0.0 MySQL yapılandırma dosyanızdaki (ör. /etc/mysql/my.cnf) bağlantı adresi için aşağıdaki gibi:

bind-address    = 0.0.0.0

Adres 0.0.0.0 ise, sunucu tüm sunucu ana bilgisayar IPv4 arabirimlerinde TCP / IP bağlantılarını kabul eder.

Ayrıca adres ise ::Sunucu, tüm sunucu ana makine IPv4 ve IPv6 arabirimlerinde TCP / IP bağlantılarını kabul eder. Tüm sunucu arayüzlerinde IPv4 ve IPv6 bağlantılarına izin vermek için bu adresi kullanın.

Ya da sadece yorum yapabilirsiniz bind-address= tamamen, bu yüzden tüm adreslere bağlanacaktır. Ama sahip olmadığından emin ol. skip-networking uzak bağlantılara da izin vermek istiyorsanız my.cnf'inizde etkinleştirildi. MySQL: Hem uzak hem de yerel bağlantılara izin ver).

Ciltleme adresini değiştirdikten sonra, MySQL sunucunuzu şu şekilde yeniden başlatmayı unutmayın:

sudo service mysql restart

Sonunda, MySQL'in birden çok örneğini Master / Slave çoğaltmasıyla tek bir makinede (farklı portlarda) çalıştırmayı düşünebilirsiniz. Çoğaltma, bir MySQL veritabanı sunucusundan (master) bir veya daha fazla MySQL veritabanı sunucusuna (slave) kopyalanacak verileri sağlar.

Daha fazla oku:


33
2017-08-11 09:37



Aslında, tüm adresleri değil, bazılarına bağlanma seçeneğini umuyordum. - BlaM


Hayır yapamazsın. Bağlantı kurduğunuz sayfa açıkça belirtiyor:

Bağlanacak IP adresi. Sadece bir adres seçilebilir. Bu seçenek birden çok kez belirtilirse, verilen son adres kullanılır.

Hiçbir adres veya 0.0.0.0 belirtilmezse, sunucu tüm arabirimleri dinler.


19
2017-09-14 20:45





Diğerleri cevaplandırdıkça, birden fazla ara yüze seçici olarak bağlanmanın bir yolu yoktur.

Linux'un mümkün kılan bazı TCP araçları var. Bu kurulumda, mysql'yi 127.0.0.1'de dinleyecek ve sonra redir keyfi arayüzler üzerinde ortaya çıkarmak için.

Bunu, sanal makinenin konuk makinesinde yüklü olan mysql'i görmesine yardımcı olmak için kullanıyorum.

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

8
2018-02-24 20:23





Sanırım sorunun bu böcekle ilgili. http://bugs.mysql.com/bug.php?id=14979 Hata raporu, bazı geçici çözümler önermektedir.


6
2017-09-02 16:14



2005'ten kalma bir MySQL özellik talebi! - Tonin


İçinde my.cnf değişim (genellikle Linux'ta /etc/mysql/my.cnf veya pencereler için) bu Cevap.

bind-address                   = 127.0.0.1

için

bind-address                   = 0.0.0.0

Sonra mysql'i tekrar başlatın (Ubuntu'da) hizmet mysql restart) Pencerelerde genellikle servis yeniden başlatın Win + R services.msc 

0.0.0.0, my.cnf dosyasında verilen port ile mevcut tüm IP'lere bağlanmasını söyler


3
2017-09-19 18:34