139 votes

Impossible de se connecter au serveur MySQL local via le socket homebrew

J'ai récemment essayé d'installer MySQL avec homebrew ( brew install mysql ) et lorsque j'essaie de l'exécuter, j'obtiens l'erreur suivante :

ERREUR 2002 (HY000) : Impossible de se connecter au serveur MySQL local via le socket '/tmp/mysql.sock' (2)

No hay /tmp/mysql.sock ni un /var/lib/mysql.sock .

J'ai cherché et je n'ai rien trouvé. mysql.sock archivo.

Comment puis-je réparer cela ?

0 votes

Vous pouvez voir ce lien Réponse de GeekHades. stackoverflow.com/questions/4847069/

0 votes

J'ai installé mysql récemment et j'ai eu le même problème après que la batterie de mon ordinateur portable soit morte et ait forcé un arrêt incomplet. Cela vaut la peine de lancer mysqld pour vérifier les choses et s'assurer que MySQL s'est arrêté correctement la dernière fois. S'il y a eu un arrêt "sale" (par exemple, si une batterie d'ordinateur portable force l'arrêt du système), cela devrait le nettoyer. Vous pouvez alors relancer le serveur MySQL : mysql.server start .

1 votes

Cette réponse a fonctionné pour moi : stackoverflow.com/a/6378429/2641861

114voto

AAGD Points 1227

Lorsque vous avez fait fonctionner le serveur via

mysql.server start

vous devriez voir le socket dans /tmp/mysql.sock . Cependant, le système semble l'attendre dans /var/mysql/mysql.sock . Pour résoudre ce problème, vous devez créer un lien symbolique dans le répertoire /var/mysql :

sudo mkdir /var/mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Cela a résolu le problème pour moi. Maintenant, mon phpMyAdmin fonctionne sans problème avec localhost y 127.0.0.1 .

Le mérite revient à Henry

23 votes

Quand j'essaie mysql.server start Je reçois ERROR! The server quit without updating PID file (/usr/local/var/mysql/lyahdav-C02R32HCG8WM.pid) . J'avais besoin d'une ancienne version de MySQL, installée via brew install mysql@5.6 .

4 votes

En cours d'exécution. mysql.server start l'a réparé pour moi

0 votes

@EB cela fait un moment que je n'ai pas eu ce problème mais en regardant mon commentaire, vous avez essayé la solution de contournement pour installer une ancienne version de MySQL ? À part cela, je n'ai malheureusement pas d'autres idées.

98voto

Royal.O Points 53

Attention, cela effacera vos bases de données, faites une sauvegarde si vous souhaitez les conserver.

Il me restait quelques répertoires d'une autre installation mysql(8.0), qui n'ont pas été supprimés.

J'ai résolu ce problème en faisant ce qui suit :

Désinstaller d'abord mysql

brew uninstall mysql@5.6

Supprimez les dossiers/fichiers qui n'ont pas été supprimés.

rm -rf /usr/local/var/mysql
rm /usr/local/etc/my.cnf

Réinstaller mysql et le lier

brew install mysql@5.6
brew link --force mysql@5.6

Activez et démarrez le service

brew services start mysql@5.6

3 votes

Il semble que le problème pour moi était que j'avais toujours /usr/local/var/mysql après une installation précédente. La suppression a fait l'affaire ! Merci pour votre suggestion.

0 votes

J'ai dû exécuter l'étape "mysql_secure_installation" mentionnée par homebrew avant que cette erreur ne disparaisse.

0 votes

Cela a finalement fonctionné pour moi (après avoir essayé 5 autres réponses à travers diverses questions), bien que je savais à l'avance que supprimer le dossier mysql oblitérerait mes bases de données locales, donc j'ai utilisé mv /usr/local/var/mysql /usr/local/var/mysql_prev y mv /usr/local/etc/my.cnf /usr/local/etc/my.cnf_prev à la place, juste au cas où. Je peux ensuite comparer les différences en utilisant le diff si je le veux. J'utilise macOS Big Sur.

65voto

mh.. Points 176

Il semble que votre serveur mysql ne soit pas démarré. En général, je lance la commande stop puis je le redémarre :

mysqld stop
mysql.server start

Même erreur, et ceci fonctionne pour moi.

99 votes

. ERREUR ! Le serveur a quitté sans mettre à jour le fichier PID (/usr/local/var/mysql/myHostName.pid). ?

0 votes

J'ai fait un mysqld & par un commentaire ci-dessus, mais je pense que cela ferait probablement la même chose que mysqld stop Je suis presque sûr que dans mon cas, c'était à cause d'un mauvais arrêt.

0 votes

Je peux confirmer que dans mon cas, la commande 'mysqld' était suffisante pour redémarrer le service, et le fichier socket était recréé au démarrage du service. D'après la sortie de la console après le démarrage du service, il est évident que le fichier a été recréé : 'socket : '/tmp/mysql.sock' port : 3306 Homebrew'.

28voto

Iswanto San Points 7499

Essayez de vous connecter en utilisant "127.0.0.1" au lieu de "localhost".

2 votes

@Esteban MySQL essaiera de se connecter au socket unix si vous lui demandez de se connecter à "localhost". Si vous lui demandez de se connecter à 127.0.0.1, vous le forcez à se connecter au socket réseau. Il est donc probable que MySQL soit configuré pour écouter uniquement le socket réseau et non le socket du système de fichiers. (Source : serverfault.com/a/295300/59101 )

0 votes

Cela m'a permis de forcer le client mysql à utiliser le socket TCP, car j'exécute un tunnel SSH sur localhost vers ma base de données MySQL distante.

24voto

Berk Points 51
  1. Si vous pouvez voir "mysql stopped" lorsque vous exécutez la commande ci-dessous ;

    brew services list
  2. et si vous êtes capable de démarrer mysql avec la commande ci-dessous ;

    mysql server start

Cela signifie que mysql peut être lancé manuellement, mais qu'il ne démarre pas automatiquement au démarrage du système d'exploitation. L'ajout de mysql aux services résoudra ce problème. Pour ce faire, vous pouvez exécuter la commande suivante ;

brew services start mysql

Après cela, vous pouvez redémarrer votre système d'exploitation et essayer de vous connecter à mysql pour voir s'il a démarré automatiquement. J'ai fait la même chose et je ne reçois plus l'erreur ci-dessous ;

ERREUR 2002 (HY000) : Impossible de se connecter au serveur MySQL local via le socket /tmp/mysql.sock' (2)

J'espère que cela vous aidera.

0 votes

@berk il a aidé dans mon cas pour obtenir reid de l'erreur mais provoquer une autre erreur 'ERROR 1045 (28000) : Accès refusé pour l'utilisateur 'user'@'localhost' (utilisant le mot de passe : NO)'.

0 votes

Bonjour @PratikKhadka, l'erreur que vous obtenez maintenant, signifie que mysql est en cours d'exécution, et que vous avez un problème d'authentification. D'après le message d'erreur que vous avez posté, vous utilisez le nom d'utilisateur 'user' et pas de mot de passe. Vous devez utiliser un nom d'utilisateur et un mot de passe valides. Je vous suggère de vérifier le lien suivant ; " forums.mysql.com/read.php?34,140320,140324 "

0 votes

Pas besoin de redémarrer le système d'exploitation, il suffit d'exécuter "brew services start mysql" pour que cela fonctionne. Merci !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X