Pregunta ¿Cómo enlazar el servidor MySQL a más de una dirección IP?


¿Hay alguna forma secreta de enlazar MySQL a más de una dirección IP?

Por lo que puedo ver el dirección de enlace El parámetro en my.cnf no admite más de una IP y no puede tenerlo más de una vez.


245
2017-09-02 16:04


origen




Respuestas:


No, no hay (acabo de marcar hace 1 hora). Puedes comentar la dirección de enlace en my.cnf:

#skip-networking
#bind-address                   = 127.0.0.1

Si solo desea 2 IP, tendrá que usar un firewall.


228
2017-09-02 16:08



Correcto. La unión está limitada a 0, 1 o todos Direcciones IP en el servidor. - Joe
Sin embargo, tenga en cuenta que puede publicar y servir tanto un socket local de Unix como un socket de red especificando tanto socket y bind-address opciones - danorton
sigue siendo cierto a partir de hoy. - Dennis Nolte
Eso es ridículo. - Phillipp
@AJP Mysql trata a 'localhost' y '127.0.0.1' de manera diferente en el sistema de privilegios. Confirmado aquí Se utiliza un archivo de socket Unix si no especifica un nombre de host o si especifica el nombre de host especial localhost. - Christian Lescuyer


La vinculación a 127.0.0.x no lo pondrá a disposición de todos los dispositivos, lo hará solo a nivel local. Si desea que esté disponible para todas las interfaces, debe utilizar 0.0.0.0. Si desea acceder a él desde más de una, pero menos que todas las interfaces, debe enlazar a 0.0.0.0 y el firewall fuera de las interfaces a las que no desea acceder.

Además, como segundo nivel de seguridad, debe asegurarse de que todos los usuarios de MySQL tengan un campo de host configurado en algo distinto a% (es decir, cualquier host).


76
2017-09-02 16:29



A menos que tenga una pila de red rota, no puede enlazar un puerto TCP a la dirección 0.0.0.0. - John Gardeniers
Tú puede enlazar a 0.0.0.0. Simplemente no puedes dirigirte a él. Si está en Linux (o incluso en Windows, simplemente instale netcat para Windows) intente: en un terminal: nc -l 0.0.0.0 4321 y en un segundo terminal: telnet <IP de cualquier interfaz que tenga su computadora> 4321 Y se conectará a ella. - Grey Panther
Como dije, a menos que tenga una pila de red rota ... - John Gardeniers
@JohnGardeniers Es por eso que está en la página man de linux ip (7) definida bajo direcciones especiales: INADDR_ANY (0.0.0.0) means any address for binding;? - ebyrob
En Debian, crea un archivo /etc/mysql/conf.d/bindaddress.cnf archivo con contenido [mysqld] \n bind-address = 0.0.0.0 - Yves Martin


No puede enlazar a más de una dirección IP, pero puede enlazar a todas las direcciones IP disponibles en su lugar. Si es así, solo usa 0.0.0.0 para una dirección de enlace en su archivo de configuración de MySQL (por ejemplo, /etc/mysql/my.cnf) de la siguiente manera:

bind-address    = 0.0.0.0

Si la dirección es 0.0.0.0, el servidor acepta conexiones TCP / IP en todas las interfaces IPv4 del host del servidor.

Además si la dirección es ::, el servidor acepta conexiones TCP / IP en todas las interfaces IPv4 e IPv6 del host del servidor. Utilice esta dirección para permitir las conexiones IPv4 e IPv6 en todas las interfaces del servidor.

O simplemente puede comentar bind-address= en total, por lo que se unirá a todas las direcciones. Pero asegúrate de que no tienes skip-networking habilitado en su my.cnf si también desea permitir conexiones remotas (lea más: MySQL: Permitir conexiones remotas y locales).

Después de cambiar la dirección de enlace, no olvide reiniciar su servidor MySQL:

sudo service mysql restart

Finalmente, puede considerar ejecutar varias instancias de MySQL en una sola máquina (diferentes puertos) con replicación Maestro / Esclavo. La replicación permite que los datos de un servidor de base de datos MySQL (el maestro) se copien en uno o más servidores de base de datos MySQL (los esclavos).

Lee mas:


33
2017-08-11 09:37



En realidad esperaba una opción para enlazar a algunas, pero no a todas las direcciones. - BlaM


No, no puedes. La página a la que se vincula indica claramente:

La dirección IP para enlazar. Sólo se puede seleccionar una dirección. Si esta opción se especifica varias veces, se usa la última dirección dada.

Si no se especifica una dirección o 0.0.0.0, el servidor escucha en todas las interfaces.


19
2017-09-14 20:45





Como han respondido otros, aún no hay una manera de vincularse de forma selectiva a más de una interfaz.

Linux tiene algunas herramientas TCP que lo hacen posible. En esta configuración, configurarías mysql para escuchar en 127.0.0.1 y luego usarías redirigir Para exponerlo en interfaces arbitrarias.

He estado usando esto para ayudar a un invitado de una caja virtual a ver mysql instalado en la máquina host.

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

8
2018-02-24 20:23





Creo que tu pregunta está relacionada con este error. http://bugs.mysql.com/bug.php?id=14979 El informe de errores sugiere alguna solución.


6
2017-09-02 16:14



¡Una solicitud de características de MySQL que data de 2005! - Tonin


En my.cnf cambio (generalmente /etc/mysql/my.cnf en Linux o para la comprobación de Windows esta responder.

bind-address                   = 127.0.0.1

a

bind-address                   = 0.0.0.0

Luego reinicie mysql (en Ubuntu servicio mysql restart) En Windows, normalmente, reinicio del servicio a través de Win + R services.msc 

0.0.0.0 le indica que se enlace a todas las direcciones IP disponibles con el puerto también dado en my.cnf


2
2017-09-19 18:34