Czy istnieje tajny sposób powiązania MySQL z więcej niż jednym adresem IP?
O ile widzę parametr bind-address w pliku my.cnf nie obsługuje więcej niż jednego adresu IP i nie możesz go mieć więcej niż jeden raz.
linux
mysql
ip
configuration
BlaM
źródło
źródło
socket
ibind-address
.Powiązanie z wersją 127.0.0.x nie spowoduje, że będzie ona dostępna dla wszystkich urządzeń, udostępni ją 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ż ze wszystkich interfejsów, powinieneś połączyć się z 0.0.0.0 i zaporę sieciową z interfejsów, do których nie chcesz uzyskać dostępu.
Ponadto, jako druga warstwa bezpieczeństwa, powinieneś upewnić się, że wszyscy użytkownicy MySQL mają ustawione pole hosta na wartość inną niż% (tj. Dowolny host).
źródło
INADDR_ANY (0.0.0.0) means any address for binding;
?/etc/mysql/conf.d/bindaddress.cnf
plik z zawartością[mysqld] \n bind-address = 0.0.0.0
Nie można powiązać więcej niż jednego adresu IP, ale zamiast tego można powiązać wszystkie dostępne adresy IP. Jeśli tak, użyj
0.0.0.0
adresu powiązania w pliku konfiguracyjnym MySQL (np. /Etc/mysql/my.cnf) w następujący sposób:Jeśli adres to 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 IPv4 i IPv6 na serwerze. Użyj tego adresu, aby zezwolić zarówno na połączenia IPv4, jak i IPv6 na wszystkich interfejsach serwera.Możesz też po prostu
bind-address=
całkowicie skomentować , aby powiązać wszystkie adresy. Ale upewnij się, że nie maszskip-networking
włączonej opcji w pliku my.cnf, jeśli chcesz również zezwalać na połączenia zdalne (czytaj więcej: MySQL: Zezwalaj na połączenia zdalne ORAZ lokalne ).Po zmianie adresu powiązania nie zapomnij zrestartować serwera MySQL poprzez:
W końcu możesz rozważyć uruchomienie wielu instancji MySQL na jednym komputerze (różnych portach) z replikacją Master / Slave. Replikacja umożliwia kopiowanie danych z jednego serwera bazy danych MySQL (master) na co najmniej jeden serwer bazy danych MySQL (slave).
Czytaj więcej:
źródło
Nie, nie możesz. Strona, do której prowadzi link, wyraźnie stwierdza:
źródło
Jak odpowiedzieli inni, nie ma jeszcze sposobu na selektywne powiązanie z więcej niż jednym interfejsem.
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żyjesz redir, aby udostępnić go na dowolnych interfejsach.
Używam tego, aby pomóc wirtualnemu gościowi box zobaczyć mysql zainstalowany na maszynie hosta.
źródło
Myślę, że twoje pytanie dotyczy tego błędu http://bugs.mysql.com/bug.php?id=14979 Raport o błędzie sugeruje pewne obejście.
źródło
Źródło: https://dev.mysql.com/doc/refman/8.0/en/server-options.html
źródło
W pliku my.cnf zmień (zwykle /etc/mysql/my.cnf w systemie Linux lub Windows sprawdź tę odpowiedź.
do
Następnie zrestartuj mysql (w usłudze Ubuntu restart mysql ) w systemie Windows zwykle uruchom ponownie usługę przez Win + R services.msc
0.0.0.0 mówi, aby wiązał się ze wszystkimi dostępnymi adresami IP z portem podanym również w my.cnf
źródło