Je viens d'installer un nouveau serveur Ubuntu avec mysql (percona 5.5), mais il refuse d'accepter les connexions des hôtes distants
Voici ce qui se passe si j'essaie de me connecter à distance à ce serveur:
mysql -h10.0.0.2 -uroot -pmypassowrd
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.0.2' (111)
telnet 10.0.0.2 3306
Trying 10.0.0.2...
telnet: Unable to connect to remote host: Connection refused
Lorsque j'ai vérifié si mysql écoute les connexions à distance, j'ai vu ceci:
sudo netstat -ntlup | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 127018/mysqld
Comme vous pouvez le voir, cela 127.0.0.1:3306
signifie "J'accepte uniquement les connexions locales".
J'ai vérifié mes variables skip_networking
et bind-address
- tout est désactivé:
mysql> show variables like '%skip_networking%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | OFF |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> show variables like '%bind%';
Empty set (0.00 sec)
J'ai un autre serveur avec absolument la même configuration et cela fonctionne très bien:
sudo netstat -ntlup | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2431/mysqld
Quelle peut en être la raison? Comment faire en sorte que mysql réponde aux connexions à distance?
bind_address
n'est disponible que depuis la version 5.6 ( bugs.mysql.com/bug.php?id=44355 ), elle renverra donc un ensemble vide dans la v5.5 même s'il l'est.Réponses:
Essayez d'ajouter
bind-address = 0.0.0.0
à votre[mysqld]
section de votremy.cnf
et redémarrez mysqld .la source
/etc/mysql/mysql.conf.d/mysqld.cnf
Cela pourrait être dû à la table utilisateur de la base de données mysql (utilisez mysql; show tables;). Si la liaison à 0.0.0.0 ne fonctionne pas pour vous, essayez de donner à votre utilisateur l'hôte '%' à la place de 'localhost' dans cette table.
Par exemple, essayez de créer un utilisateur comme:
et essayez de vous connecter avec cet utilisateur.
la source
Lorsque tout le reste échoue et que vous êtes sûr que le serveur écoute sur le port par défaut et que vous essayez de vous connecter désespérément avec le client mysql à partir d'un autre hôte, essayez de spécifier le port sur l'URL de la commande mysql.
Aussi étrange soit-il, j'ai dû utiliser la syntaxe suivante:
J'ai trouvé ce (bug?) Totalement par accident (après avoir perdu mes cheveux :)).
Ma configuration: debian jessie, mysql frais 5.7.18, utilisateurs / db créés, adresse de liaison commentée, mysqld redémarré
la source
Je viens d'avoir ce problème et mon problème semble être lié au pare-feu. BTW - Merci @Temnovit pour les commandes de dépannage de Mysql.
J'ai utilisé netstat pour dire que le serveur était en cours d'exécution et sur le bon port. Je pourrais également dire que mon serveur n'acceptait pas les connexions sur ce port avec une simple commande telnet.
Après une autre réponse utile sur les commandes du pare-feu Fedora, j'ai pu ouvrir les ports appropriés.
Ma commande telnet a ensuite réussi.
Si vous rencontrez toujours des problèmes, il s'agit probablement d'un problème d'autorisations utilisateur.
la source
J'ai
mariadb
installé. Le Soulution était de modifier lebind-address
situé à/etc/mysql/mariadb.conf.d/50-server.cnf
la source
La solution décrite dans le lien ci-dessous devrait résoudre votre problème http://www.debianhelp.co.uk/remotemysql.htm
la source