Jak powiązać serwer MySQL z więcej niż jednym adresem IP?

Czy istnieje tajny sposób powiązania MySQL z więcej niż jednym adresem IP?

O ile widzę parametr bind-address w my.cnf nie obsługuje więcej niż jednego adresu IP i nie możesz mieć go więcej niż raz.

Author: kenorb, 2008-09-02

8 answers

Nie, Nie ma (sprawdzałem 1 godzinę temu). Możesz skomentować adres bind w moim."cnf": {]}

Uwaga: "1 godzina temu" jest teraz ponad 10 lat temu.

#skip-networking
#bind-address                   = 127.0.0.1

Jeśli chcesz tylko 2 Adresy IP, będziesz musiał użyć Firewalla.

Dla MySql w wersji 8.0.13 i nowszej , można określić listę rozdzielonych przecinkami adresów IP.

bind-address = 10.0.0.1,10.0.1.1,10.0.2.1

Odpowiednia dokumentacja MySql .

 271
Author: Christian Lescuyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-21 20:11:34

Wiązanie do 127.0.0.x nie udostępni go wszystkim urządzeniom, udostępni tylko lokalnie. Jeśli chcesz udostępnić go wszystkim interfejsom, powinieneś użyć 0.0.0.0. Jeśli chcesz uzyskać do niego dostęp z więcej niż jednego, ale mniej niż wszystkie interfejsy, powinieneś połączyć się z 0.0.0.0 i wyłączyć firewall z interfejsów, przez które nie chcesz być dostępny.

Ponadto, jako druga warstwa zabezpieczeń, powinieneś upewnić się, że wszyscy użytkownicy MySQL mają ustawione pole hosta na coś inne niż % (tj. dowolny host).

 81
Author: Grey Panther,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-02 16:29:43

Nie możesz powiązać więcej niż jednego adresu IP, ale możesz powiązać wszystkie dostępne adresy IP. Jeśli tak, po prostu użyj 0.0.0.0 dla adresu wiążącego w pliku konfiguracyjnym MySQL (np. /etc/mysql / my.cnf) w następujący sposób:

bind-address    = 0.0.0.0

Jeśli adres jest 0.0.0.0, serwer akceptuje połączenia TCP / IP na wszystkich interfejsach hosta serwera IPv4.

Ponadto jeśli adres jest ::, Serwer akceptuje połączenia TCP / IP na wszystkich interfejsach hosta serwera IPv4 i IPv6. Użyj tego adresu, aby zezwolić połączenia IPv4 i IPv6 na wszystkich interfejsach serwera.

Lub możesz po prostu skomentować bind-address= w całości, więc będzie to wiązać się ze wszystkimi adresami. Ale upewnij się, że nie masz skip-networking włączony w swoim my.cnf jeśli chcesz zezwolić na połączenia zdalne (Czytaj więcej: MySQL: Zezwalaj na połączenia zdalne i lokalne ).

Po zmianie adresu wiążącego, nie zapomnij ponownie uruchomić serwera MySQL przez:

sudo service mysql restart

W końcu można rozważyć uruchomienie wielu instancje MySQL na jednej maszynie (różne porty) z replikacją Master / Slave. Replikacja umożliwia kopiowanie danych z jednego serwera baz danych MySQL (master) do jednego lub więcej serwerów baz danych MySQL (Slave).

Czytaj więcej:

 52
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 12:14:05

Nie, Nie możesz. Strona, do której linkujesz wyraźnie stwierdza:

Adres IP do powiązania. Można wybrać tylko jeden adres. Jeśli ta opcja jest podawana wielokrotnie, używany jest ostatni podany adres.

Jeśli nie podano adresu lub 0.0.0.0, serwer nasłuchuje wszystkich interfejsów.

 21
Author: Andreas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-11 10:02:37

Jak inni odpowiedzieli, nie ma jeszcze sposobu, aby selektywnie powiązać więcej niż jeden interfejs.

Linux ma kilka narzędzi TCP, które to umożliwiają. W tej konfiguracji skonfigurujesz mysql do nasłuchiwania na 127.0.0.1, a następnie użyj redir , aby wyświetlić go na dowolnych interfejsach.

Używam tego, aby pomóc wirtualnemu gościowi Box zobaczyć mysql zainstalowany na komputerze hosta.

redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &
 14
Author: txyoji,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-24 20:23:29

Przed MySQL 8.0.13, --bind-address akceptuje pojedynczą wartość adresu, które mogą określać pojedynczy adres IP lub nazwę hosta, lub jeden z formatów adresów wieloznacznych, który umożliwia słuchanie na wielu interfejsy sieciowe ( * , 0.0.0.0 lub::).

Od MySQL 8.0.13, --bind-address przyjmuje pojedynczą wartość jako opisane lub Lista wartości oddzielonych przecinkami. Gdy nazwa opcji lista wielu wartości, każda wartość musi określać pojedynczą nie-wieloznaczny adres IP lub host Nazwa; żaden nie może podać wieloznaczności format adresu ( * , 0.0.0.0 lub::).

Źródło: https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_bind_address

 13
Author: Tadej,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-09 20:09:19

Myślę, że twoje pytanie jest związane z tym błędem http://bugs.mysql.com/bug.php?id=14979 Raport o błędzie sugeruje pewne obejście.

 6
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-02 16:14:04

In my.cnf change (Zwykle / etc / mysql / my.cnf na Linuksie lub dla windows sprawdź this answer.

bind-address                   = 127.0.0.1

Do

bind-address                   = 0.0.0.0
Następnie uruchom ponownie mysql (na Ubuntu service MySQL restart ) w systemie windows Zwykle service restart thru Win+R services.msc

0.0.0.0 mówi, aby powiązać wszystkie dostępne IP z portem również podanym w my.cnf

 6
Author: Aleksandar Pavić,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-19 18:34:32