Existe-t-il un moyen secret de lier MySQL à plusieurs adresses IP?
Autant que je sache, le paramètre bind-address de my.cnf ne prend pas en charge plus d'une adresse IP et vous ne pouvez pas l'avoir plus d'une fois.
linux
mysql
ip
configuration
BlaM
la source
la source
socket
etbind-address
.La liaison à 127.0.0.x ne le rendra pas disponible à tous les périphériques, il le rendra disponible localement uniquement. Si vous souhaitez le rendre disponible pour toutes les interfaces, vous devez utiliser 0.0.0.0. Si vous souhaitez y accéder à partir de plusieurs, mais de moins de toutes les interfaces, vous devez vous connecter à 0.0.0.0 et utiliser le pare-feu pour les interfaces auxquelles vous ne voulez pas accéder.
De plus, en tant que deuxième couche de sécurité, vous devez vous assurer que le champ hôte de tous vos utilisateurs MySQL est défini sur autre chose que% (c’est-à-dire n’importe quel hôte).
la source
INADDR_ANY (0.0.0.0) means any address for binding;
?/etc/mysql/conf.d/bindaddress.cnf
avec le contenu[mysqld] \n bind-address = 0.0.0.0
Vous ne pouvez pas lier plus d'une adresse IP, mais vous pouvez également vous lier à toutes les adresses IP disponibles. Si c'est le cas, utilisez simplement
0.0.0.0
une adresse de liaison dans votre fichier de configuration MySQL (par exemple, /etc/mysql/my.cnf) comme suit:Si l'adresse est 0.0.0.0, le serveur accepte les connexions TCP / IP sur toutes les interfaces IPv4 de l'hôte du serveur.
De plus, si l'adresse est correcte
::
, le serveur accepte les connexions TCP / IP sur toutes les interfaces IPv4 et IPv6 de l'hôte du serveur. Utilisez cette adresse pour autoriser les connexions IPv4 et IPv6 sur toutes les interfaces de serveur.Ou vous pouvez simplement commenter
bind-address=
complètement, de sorte qu'il sera lié à toutes les adresses. Mais assurez-vous que vous n'avez passkip-networking
activé dans votre fichier my.cnf si vous souhaitez également autoriser les connexions distantes (Pour en savoir plus: MySQL: autorisez les connexions distantes ET locales ).Après avoir changé l'adresse de liaison, n'oubliez pas de redémarrer votre serveur MySQL en:
Vous pouvez éventuellement envisager d'exécuter plusieurs instances de MySQL sur une même machine (différents ports) avec une réplication maître / esclave. La réplication permet de copier les données d'un serveur de base de données MySQL (le maître) vers un ou plusieurs serveurs de base de données MySQL (les esclaves).
Lire la suite:
la source
Non vous ne pouvez pas. La page vers laquelle vous créez un lien indique clairement:
la source
Comme d'autres l'ont répondu, il n'y a pas encore moyen de se lier de manière sélective à plusieurs interfaces.
Linux a quelques outils TCP qui le rendent possible. Dans cette configuration, vous configureriez mysql pour écouter sur 127.0.0.1, puis utiliser redir pour l'exposer sur des interfaces arbitraires.
Je l'utilise pour aider un invité virtuel à voir mysql installé sur la machine hôte.
la source
Je pense que votre question est liée à ce bogue http://bugs.mysql.com/bug.php?id=14979 Le rapport de bogue suggère une solution de contournement.
la source
Source: https://dev.mysql.com/doc/refman/8.0/en/server-options.html
la source
Dans my.cnf change (généralement /etc/mysql/my.cnf sous Linux ou pour Windows, cochez cette réponse.
à
Puis redémarrez mysql (au redémarrage du service Ubuntu , mysql ) sous Windows, généralement à l'aide du redémarrage via Win + R services.msc
0.0.0.0 lui dit de se connecter à toutes les adresses IP disponibles avec un port également indiqué dans my.cnf
la source