L'adresse de liaison MySQL 5.7 ne fonctionne pas

17

J'ai toujours réussi à configurer une connexion à distance pour MySQL 5.5.

Aujourd'hui, j'ai installé un nouveau serveur avec Ubuntu 16.04 et MySQL 5.7. Mais pour certaines raisons, je ne peux pas faire écouter cette installation MySQL à d'autres hôtes 127.0.0.1.

Voici mon /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

Je ne pouvais pas me connecter à ce serveur MySQL à partir d'un hôte distant, et quand j'ai vérifié mon netstat, j'ai réalisé que MySQL n'écoutait que les connexions localhost.

lsof -Pni :3306 la sortie est:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  5302 mysql   25u  IPv4  37280      0t0  TCP 127.0.0.1:3306 (LISTEN)

Quel est le problème?

Hast
la source
Avez-vous fait rebondir mysql? Quelle est la sortie de netstat -lntp?
Linuxx
@Linuxx J'ai même redémarré toute la machine. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hast
Je suppose que vous avez ajouté cette ligne dans ce fichier. Supprimez cette ligne et modifiez le fichier /etc/mysql/mysql.conf.d/mysqld.cnf et modifiez-y le paramètre.
Linuxx
1
@Linuxx Cela a fonctionné comme par magie :) Je n'ai pas remarqué qu'il existe encore un autre répertoire * .conf.d. Donc, fondamentalement, 5.7 conserve [config mysql] dans le répertoire conf.d, tandis que les config [mysqld] sont conservées dans mysql.conf.d. Je vous remercie! Veuillez répondre, alors je l'accepterai.
Hast
1
J'ai changé l'adresse de liaison sur /etc/mysql/mysql.conf.d/mysqld.cnf et /etc/mysql/conf.d/mysql.cnf, redémarré de serveur mais je vois toujours "tcp 0 0 127.0. 0,1: 3306 "lorsque je lance <netstat -tulpen
Chepech

Réponses:

39

Ils ont changé le paquet MySQL pour que le paramètre de liaison se trouve maintenant dans /etc/mysql/mysql.conf.d/mysqld.cnf. Veuillez y modifier le paramètre de liaison et supprimer tout ce que vous avez placé dans /etc/mysql/conf.d/mysql.cnf.

Linuxx
la source
C'est ridicule cependant. Le but de "conf.d" n'était PAS de modifier les valeurs par défaut fournies par le package et de les remplacer par votre propre configuration. Mais comme maintenant "mysql.conf.d" est prioritaire sur le nôtre, il n'y a aucun moyen fiable de s'assurer que le nôtre arrive enfin à moins que nous n'éditions "mysql.conf.d / mysqld.cnf".
kenn
@kenn: ajoutez votre configuration sous mysql.conf.d / à la place et nommez-la "x-something"
Bell
3
Bien sûr, mais quel est l'intérêt de "conf.d" alors? "Mysql.conf.d" n'est-il pas une valeur par défaut fournie par le paquet, qui est censée être remplacée par "conf.d"? Je pense que l'ordre de chargement de "conf.d" et "mysql.conf.d" devrait être inversé dans "/etc/mysql/my.cnf" au niveau du package MySQL.
kenn