web-dev-qa-db-fra.com

ERREUR 2003 (HY000): Impossible de se connecter au serveur MySQL sur 'nom d'hôte' (111)

Merci d'avance pour votre aide.

Je suis confronté à un problème avec mysql server qui est le titre de cette rubrique, en utilisant la commande:

mysql -u myuser -pmypass -h `hostname`  db_name

Je reçois l'erreur

ERROR 2003 (HY000): Can't connect to MySQL server on 'hostname' (111)

Alors j'ai vérifié le fichier my.cnf et je n'ai pas de lignes avec "bind address" et "skip-networking" bien que j'aie essayé de les ajouter et de les redémarrer, ce qui n'a rien changé.

En outre, il n'y a pas d'erreur dans les journaux SQL, et nous pouvons (avec HeidiSQL) nous connecter au serveur à distance en sachant que l'utilisateur est myuser"@"%. Mysql écoute sur le port 3306, donc c'est bon là-bas

Les utilisateurs créés avec @ 'localhost' fonctionnent également avec la ligne de commande (sans l'option -h). 

Ce qui est plus intriguant, c’est que d’autres serveurs qui ont exactement la même apparence fonctionnent à la fois localement et à distance avec la première commande ...

Le serveur fonctionne avec CentOS 6.2

Donc, si quelqu'un a une idée à ce sujet, je serais heureux de l'entendre

P.S: C'est la première fois que je poste ici, donc s'il y a des problèmes de formatage, pardonnez-moi s'il vous plaît

7
ASettouf

Il suffit de vérifier votre my.cnf et de changer de

bind-address = 0.0.0.0

à

bind-address = 127.0.0.1

si vous n'avez pas ce paramètre, ajoutez-le.

En vous liant à la 0.0.0.0, laissez votre mysql disponible sur chaque adresse IP configurée, car vous ne pouvez pas vous lier uniquement sur deux ou trois adresses IP sur le serveur. La configuration peut être: localhost ou tout.

Ensuite, vérifiez votre fichier/etc/hosts et assurez-vous que la ligne

127.0.0.1 localhost

contient également votre nom d’hôte serveur, à titre d’exemple: mon nom d’hôte est "db01", mon/etc/hosts est

127.0.0.1 localhost db01

Gardez à l'esprit qu'après le processus d'installation via yum (je ne sais pas si CentOS le fait automatiquement pour vous, je sais juste que Gentoo ne le fait pas), vous devez exécuter mysql_install_db puis configurer le mot de passe pour l'utilisateur root, soyez absolument sûr que vous ayez configuré un mot de passe pour:

'root'@'localhost'
'root'@'hostname'
'root'@'127.0.0.1'
'root'@'%'

(pour un problème de sécurité, assurez-vous également de supprimer de mysql.user les entrées avec user = '')

j'espère que cela t'aides

7
MiPnamic

Réponse tardive, mais je pense que ce message d'erreur signifie que le serveur auquel vous essayez de vous connecter n'écoute pas cette interface.

Si vous modifiez la configuration en:

bind-address = 127.0.0.1

comme suggéré ci-dessus, vous configurez le serveur pour qu'il rejette toutes les connexions sauf celles de localhost (lui-même).

bind-address = 0.0.0.0

est dans la plupart des cas suffisant et permet à mysql d'écouter toutes les interfaces du système, ce qui le rend accessible via toutes les adresses auxquelles l'hôte est accessible.

4
nucc1

Activez le port sur le pare-feu et essayez ...

dans le terminal, exécute les commandes sous la forme root.

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
0
Dinesh-SriLanka