ERREUR 2003 (HY000): impossible de se connecter au serveur MySQL sur '127.0.0.1' (111)

135

J'utilise la commande suivante:

mysql -u root -h 127.0.0.1 -p

et le message d'erreur est:

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

Qui peut m'aider à résoudre ce problème?

Charlie Epps
la source
3
Le démon mysql est-il en cours d'exécution? Avez-vous un pare-feu? Pouvez-vous telnet à mysql le port par défaut est 306 alors - telnet localhost 3306
mmmmmm
le démon mysql est en cours d'exécution. Je suis sûr.
Charlie Epps
1
Est-ce juste moi ou si vous vous connectez au serveur mysql local, vous n'avez pas besoin de spécifier l'hôte, par exemple mysql -u root -p devrait fonctionner?
RMcLeod
juste pour vous assurer que vous essayez de vous connecter au serveur de base de données localement?
John Kane
J'ai récemment installé mysql sur ubuntu-12.04.2. La version est 14.14 Distrib 5.5.32, pour debian-linux-gnu (x86_64) utilisant readline 6.2, sa configuration par défaut ne contient pas 'skip-networking'. Vous ne rencontreriez donc pas l'erreur avec cette version.

Réponses:

220

Si vous utilisez ubuntu, vous devez suivre les étapes suivantes pour éviter cette erreur (s'il n'y a pas de réplication activée):

  1. exécuter la commande vim /etc/mysql/my.cnf
  2. commentaire en bind-address = 127.0.0.1utilisant le symbole #
  3. redémarrez votre serveur mysql une fois.

Mettre à jour

À l'étape 1, si vous ne trouvez pas bind-addressdans le my.cnffichier, recherchez-le dans le /etc/mysql/mysql.conf.d/mysqld.cnffichier.

Mise à jour en cas de réplication MySQL activée

Essayez de connecter le serveur MySQL sur IPlequel le serveur MySQL est lié dans «my.cnf instead oflocalhost ou 127.0.0.1».

Justin Vincent
la source
8
Je vous remercie!!! J'essayais de comprendre cela depuis longtemps! J'ai commenté cette ligne, enregistré le fichier, puis couru service mysql restart. Et maintenant ça marche!
Ryan
Dans mon cas, j'avais l'adresse du serveur au lieu de 127.0.0.1 pour bind-address. Si tel est le cas pour vous, vous devrez également le commenter.
Vlad Schnakovszki
4
Il n'y a pas bind-address = 127.0.0.1de/etc/mysql/my.cnf
RegarBoy
6
@developer, j'ai trouvé le mien ici: /etc/mysql/mysql.conf.d/mysqld.cnf
une fois le
J'ai changé l'adresse de liaison = <ip du serveur principal>, mais je ne peux pas redémarrer mysql.
Avi Kehat
14

Essayez localhostau lieu de 127.0.0.1vous connecter ou dans votre connection-config. A travaillé pour moi sur un serveur Debian Squeeze

grex_e
la source
Pour info, si vous spécifiez localhost, cela indique à Mysql de se connecter via le socket unix (/var/run/mysqld/mysqld.sock sur ubuntu) plutôt que sur un socket TCP.
Duke
8

Cela se produit lorsque vous oubliez de démarrer la base de données avant de vous y connecter:

mysql.server start

puis

mysql -u root -p -h 127.0.0.1
Henri
la source
dans le terminal sur mac et linux. Je crois que c'est la même chose dans Windows CMD mais je ne suis pas certain.
Henry
J'ai dû démarrer le serveur MySQL en utilisant sudo service mysqld startmon instance AWS EC2 avec MySQL Community Server.
harshainfo
6

Dans mon cas (connexion à distance) a aidé à désactiver le pare-feu sur le serveur.

service iptables stop
Bunyk
la source
@ram Vous utilisez probablement un autre pare-feu. Ou votre problème n'est pas du tout un pare-feu. Consultez la documentation de votre distribution Linux.
Bunyk
1
@ram tryservice firewalld stop
Maxim Mazurok
1
MySQL fonctionne généralement sur le port 3306, alors ajoutez cela à votre pare
kurdtpage
6

Ce problème peut se produire car votre serveur MySQL n'est pas installé et en cours d'exécution. Pour ce faire, démarrez l'invite de commande en tant qu'administrateur et entrez la commande:

"C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --install

Si vous obtenez le message "Service installé avec succès", vous devez démarrer le service MySQL. Pour ce faire: allez dans la fenêtre Services (Gestionnaire de tâches -> Services -> Ouvrir les services) Recherchez MySQL et démarrez-le à partir de la barre de navigation supérieure. Ensuite, si vous essayez d'ouvrir mysql.exe, cela fonctionnera.

S.Roshanth
la source
2
Une petite erreur, cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin" et puis mysqld --install. De plus, le numéro de serveur dépend du téléchargement.
Dejazmach
Faire cela a résolu mon problème
Steffi Keran Rani J
6

regardez le my.cnffichier, s'il contient une [client]section, et portque le port d'écoute n'est pas réel (par défaut 3306), vous devez connecter le serveur avec un paramètre explicite -P 3306, par exemple

mysql -u racine -h 127.0.0.1 -p -P 3306

Yu Jiaao
la source
où puis-je rechercher le fichier my.cnf. ce n'est pas là dans le serveur wamp, dans mon ordinateur portable
Deepak Keynes
Sur Windows, il appelle généralement `` my.ini ''
Yu Jiaao
Pour moi, le port était le problème. Merci
Chandra Eskay
0

Vous devez changer le paramètre bind-address en 127.0.0.1 dans le fichier de configuration mysql (my.ini ou my.cnf) ou utiliser celui qui y est défini.

Si cela ne fonctionne pas, vous devriez vérifier que le service mysql est en cours d'exécution.

nkr1pt
la source
1
J'ai ajouté la ligne "bind-address = 127.0.0.1" au fichier my.cnf. Mais ça ne marche pas.
Charlie Epps
2
Si cette ligne est présente, mysql écoutera UNIQUEMENT l'adresse indiquée. Pour activer l'accès à distance, vous devez SUPPRIMER cette ligne. Soyez conscient de l'implication de sécurité que cela a.
webkraller
l'ajout bind-address =127.0.0.1de my.cnf désactive la connexion à distance à la base de données. Donc, même si cela fonctionnait (ce qui n'est pas le cas), ce n'est pas une bonne solution.
Nir Alfasi
L'adresse de liaison doit être 0.0.0.0 sauf si vous ne voulez pas que quelqu'un d' autre se connecte.
Marquis of Lorne
0

Incase vous exécutez sur un port non par défaut, vous pouvez essayer d' utiliser --port=<port num> fournis --skip-networkingest -not enabled.

KDAS
la source
0

J'ai juste ce problème .... en cours d'exécution dans Win7 et serveur wamp ... après avoir lu ceci

Trouvé que le pare-feu antivirus a causé le problème.

Adhie_x
la source
0

J'étais également confronté au même problème. Ce qui suit m'a aidé à résoudre le problème, allez dans le panneau de configuration-> Outils d'administration -> services à l'intérieur de celui-ci, vous verrez très certainement le service MySQL: faites un clic droit et dites démarrer (forcer le démarrage).

Mightian
la source
0

Pour les utilisateurs de Docker - Lorsque vous essayez de vous connecter à SQL local en utilisantmysql -u root -h 127.0.0.1 -pet que votre base de données s'exécute sur leconteneur Docker , assurez-vous que le service mysql est opérationnel (vérifiez en utilisantdocker pset vérifiez également que vous êtes également dans le bon port), si le conteneur est vous obtiendrez une erreur de connexion.

La meilleure pratique consiste à définir les adresses IP /etc/hostssur votre ordinateur:

127.0.0.1 db.local

et le faire fonctionner par mysql -u root -h db.local -p

avivamg
la source
0

Essayez de ne pas arrêter iptables et d'ouvrir le port 3306.

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

ou sudo ufw allow 3306si vous utilisez ufw.

check: netstat -lnp | grep mysqlvous devriez obtenir qc comme ça:

cp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2048/mysqld         
tcp6       0      0 :::33060                :::*                    LISTEN      2048/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     514961   2048/mysqld          /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     514987   2048/mysqld          /var/run/mysqld/mysqlx.sock

si vous avez null, supprimez # avant port = 3306 dans le fichier cnf.

Karol Preiskorn
la source
0

Veuillez vous assurer que votre serveur MySql fonctionne sur localhost.

Sous Linux

Pour vérifier si le serveur MySql est en cours d'exécution:

sudo service mysql status

Pour exécuter le serveur MySql:

sudo service mysql start

Sous Windows

Pour vérifier si le serveur MySql est en cours d'exécution:

C:\Windows\system32>net start

Si MySql n'est pas dans la liste, vous devez démarrer / exécuter MySql.

Pour exécuter le serveur MySql:

C:\Windows\system32>net start mysql

J'espère que cela t'aides.

Safiqur Rhaman
la source
-1

J'ai changé le répertoire d'installation lors de la réinstallation, et cela a fonctionné.

Gursimran Pannu
la source
-2

je viens de redémarrer mon serveur mysql et le problème résolu dans windows net stop MySQL puis net start MySQl ubuntu linux sudo service start mysql

Jasim
la source