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


202

J'ai installé MySQL sur Mac OS X Mountain Lion avec homebrew install mysql, mais quand j'ai essayé, mysql -u rootj'ai eu l'erreur suivante:

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

Que signifie cette erreur? Comment puis-je le réparer?


3
Je ne l'ai pas install mysql-servermysql
Hanky ​​Panky

3
@HankyPanky c'était peut-être vrai lorsque vous l'avez écrit. Mais en 2016 Brew n'a pas mysql-serverà install.
jjpe

22
Il est important de noter que vous avez installé en utilisant Homebrew alors ignorez les conseils non homebrew et démarrez (et redémarrez au démarrage) avec brew services start mysqlou (si vous ne voulez pas de service en arrière-plan) mysql.server start.
Dave Everitt

1
Je l'ai fait fonctionner mais avec le vieux mysql normal 5.7.19. La nouvelle version de mysql@5.7 5.7.24ne pouvait pas fonctionner car la référence de config restait liée à l'ancien mysql au lieu du nouveau brew Cellar mysql@5.7 Keg. Alors merci, j'essaye plus tard
KeitelDOG

1
Cette erreur est également susceptible de se produire après l'exécution, brew upgradece qui installera une version plus récente de mysql que celle précédemment installée.
johnsampson

Réponses:


113

C'est probablement parce que MySQL est installé mais pas encore en cours d'exécution.

Pour vérifier qu'il fonctionne, ouvrez Activity Monitor et sous "Tous les processus", recherchez et vérifiez que vous voyez le processus "mysqld".

Vous pouvez le démarrer en installant "MySQL.prefPane".

Voici le tutoriel complet qui m'a aidé: http://obscuredclarity.blogspot.in/2009/08/install-mysql-on-mac-os-x.html


95
Je viens de courir mysqldet c'est tout, c'était un problème causé par un mauvais arrêt dû à une sorte de réinitialisation / arrêt dur du système.
ProfNandaa

2
Aucune des méthodes suggérées n'a fonctionné. Pour moi, il fonctionnait, cependant, il y avait un problème d'autorisation. La course a sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7résolu le problème
FooBar

Lorsque vous regardez dans le moniteur d'activité, mysqlId est en cours d'exécution; pour contourner cela, arrêtez simplement mysql puis redémarrez-le.
JpersaudCodezit

109

Vous devrez démarrer MySQL avant de pouvoir utiliser la mysqlcommande sur votre terminal. Pour ce faire, exécutez brew services start mysql. Par défaut, brew installe la base de données MySQL sans mot de passe root. Pour sécuriser fonctionner: mysql_secure_installation.

Pour exécuter connexion: mysql -uroot. rootest le nom d'utilisateur ici.


8
La course a sudo chown -R _mysql:mysql /usr/local/var/mysql && sudo brew services restart mysql@5.7résolu le problème
FooBar

1
Pour ceux qui se demandent mysql_secure_installationest un script spécifique mariaDB.
T.Woody

3
brew services start mysqlSuccès. Mais quand je cours mysql -urootaprès, toujours la même erreur.
Harper Koo

est-il nécessaire de l'exécuter à chaque démarrage d'un Mac ou le lancera-t-il une fois pour supprimer l'erreur / garder MySQL en cours d'exécution ou démarrer au démarrage?
Connor Leech

Exécuter cette fois devrait suffire.
Md Mazedul Islam Khan

90

Cela s'est produit après l'installation de homebrew et se produit en raison de problèmes d'autorisation. Les commandes suivantes ont résolu le problème.

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start

2
tu es génial @nirojan, je me cognais la tête contre le mur: thumsup:
Ravi Sharma

Cool. Je peux résoudre mon problème lorsque je passe à un autre compte d'administrateur mac :)
William Wong Garay

Mille mercis. Je me suis fendu la tête depuis plus de 5 heures maintenant. Vu plusieurs réponses sur Internet et seulement cela a aidé.
ivange94

Je t'aime @nirojan
Raccoon

Gloire! Mais lorsque j'ai redémarré mon MacBook, j'ai le même problème.
Junior Gantin du

46

Courir: brew info mysql

Et suivez les instructions. D'après la description de la formule:

Set up databases to run AS YOUR USER ACCOUNT with:
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

To set up base tables in another folder, or use a different user to run
mysqld, view the help for mysql_install_db:
    mysql_install_db --help

and view the MySQL documentation:
  * http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
  * http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html

J'espère que cela t'aides.


35

Comme d'autres l'ont souligné, c'est parce que MySQL est installé mais que le service ne fonctionne pas. Il existe de nombreuses façons de démarrer le service MySQL et ce qui a fonctionné pour moi est le suivant.

Pour démarrer le service:

  1. Allez dans "Préférences système"
  2. Dans le volet inférieur, il devrait y avoir une icône MySql.
  3. Double-cliquez dessus pour lancer le «Statut du serveur MySQL» et appuyez sur le bouton «Démarrer le serveur MySQL»

Mon env:

Mac Yosemite 10.10.3

Package installé: /Volumes/mysql-advanced-5.6.24-osx10.8-x86_64


@HosMercury pouvez-vous confirmer que MySQL est installé
Ithar

Je télécharge et installe mysql à partir de la page Web officielle de Mysql. Cette solution fonctionne pour moi. Merci :)
鄭元傑

1
Bonjour, j'ai également téléchargé et installé mysql à partir de la page Web officielle, mais dans le volet des préférences, le serveur n'est pas activé (point rouge), lorsque je clique sur "démarrer le serveur sql", il devient "vert" pendant une seconde et redevient rouge, Rien ne se passe. J'ai essayé 'chown', le lien symbolique vers tmp / mysql.socket, la désinstallation / réinstallation, l'installation de brew mysql, mais tout a échoué. l'installation de l'infusion me donne une erreur non satisfaite, quelque chose sur la nécessité de Sierra ou d'un système d'exploitation supérieur. Je cours el capitan. Toute aide serait appréciée.
Spencer Trinh

24

Les solutions tournent autour:

  • changer les autorisations de MySQL

    sudo chown -R _mysql:mysql /usr/local/var/mysql
  • Démarrage d'un processus MySQL

    sudo mysql.server start

Juste pour ajouter beaucoup de bonnes réponses utiles qui ont été fournies ici et à partir de nombreux messages différents, essayez de spécifier l'hôte si les commandes ci-dessus n'ont pas résolu ce problème pour vous, c'est-à-dire

mysql -u root -p h127.0.0.1

Pour moi, c'était le problème des autorisations
pfwd

cela devrait être: mysql -u root -p -h127.0.0.1
Duc Chi

Wow, une meilleure solution que d'effacer tous mes trucs locaux. C'était une solution rapide!
Jordan

J'ai essayé ci-dessus mais finalement, cela a fonctionné: sudo chown -R $ (whoami) $ (brew --prefix) / *
Kiran Ruth R

15

Avertissement - cette méthode supprimera toutes vos bases de données dans le /usr/local/var/mysqldossier

J'ai installé MySQL avec Homebrew, et la seule chose qui a résolu ce problème pour moi était de réinstaller MySQL.

Sur l'ordinateur portable de mon entreprise, je n'avais pas l'autorisation de désinstaller MySQL de mon ordinateur via Homebrew:

$ brew uninstall mysql --ignore-dependencies
Uninstalling /usr/local/Cellar/mysql/8.0.12... (255 files, 233.0MB)
Error: Permission denied @ dir_s_rmdir - /usr/local/Cellar/mysql/8.0.12

Au lieu de cela, j'ai supprimé et réinstallé MySQL manuellement:

$ sudo rm -rf /usr/local/Cellar/mysql
$ brew cleanup
$ sudo rm -rf /usr/local/var/mysql
$ brew install mysql

Et ça a marché!


Avertissement - cette méthode supprimera toutes vos bases de données (dans le dossier / usr / local / var / mysql).
johnsampson

13

Ci-dessous, j'inclus les dernières instructions brew install mysqlafin que les recherches plus récentes sur ce problème puissent bénéficier:

$ brew install mysql
==> Downloading https://homebrew.bintray.com/bottles/mysql-5.6.26.yosemite.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring mysql-5.6.26.yosemite.bottle.1.tar.gz

To connect:
    mysql -uroot

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start

Dans mon cas, j'ai chargé mysql maintenant via launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plistet j'ai ensuite pu lancer $ mysqlet être sur mon chemin.

J'espère que cela aide les dépanneurs récents!


11

Il semble que votre serveur mysql ne soit pas démarré. J'exécute généralement la commande d'arrêt, puis je la redémarre:

mysqld stop
mysql.server start

Même erreur, et cela fonctionne pour moi.


9

Cela a résolu mon problème lorsque j'ai redémarré le service mysql. Exécutez simplement:

brew services start mysql

8

ce problème lié à l' /usr/local/var/mysqlaccès au dossier, je supprime ce dossier et réinstalle mysql.

  1. désinstaller mysql avec brew:

    brew uninstall mysql

  2. sudo rm -r /usr/local/var/mysql

  3. brew install mysql@8.0
  4. mysql -u root

Cette solution fonctionne bien pour moi! MAIS VOUS AVEZ PERDU TOUTES VOS BASES DE DONNÉES! AVERTISSEMENT!


2
Cela résoudra plus que probablement le problème, mais pour les futurs lecteurs, sachez que cela effacera toutes vos bases de données. Il s'agit essentiellement d'une ré-installation difficile de MySQL. Je sais que le contexte de la question était une nouvelle installation, mais certaines personnes qui analysent peuvent simplement essayer cela sans savoir les dommages que cela pourrait causer sur une installation existante / de production.
efru

1
Ce n'est pas vraiment une solution. C'est "Avez-vous essayé de le rallumer et de l'éteindre?"
Berry M.

6

Ough, ça m'a pris du temps à comprendre. Je l'ai vu dans un commentaire. Après avoir installé mysql en utilisant brew, et démarré le service (peut-être en utilisant sudo brew services start mysql), lancez:

$ mysqld

Et MySQL devrait fonctionner pour vous par la suite.


5

Pour moi, c'était aussi simple que de courir:

/usr/local/opt/mysql/bin/mysqld_safe

au lieu de mysqld


1
Cela a fonctionné pour moi. Je ne sais pas pourquoi, mais cela peut être lié à un bogue de redémarrage de Mac OS sur ma machine
kraftydevil

3

J'ai trouvé la solution à mon problème. C'était en effet parce que mon serveur MySQL ne fonctionnait pas.

Cela était dû au fait que MySQL n'était pas correctement configuré sur ma machine, donc ne pouvait pas fonctionner.

Pour y remédier, j'ai utilisé un script qui installe MySQL sur Mac OSX Mountain Lion , qui doit avoir installé des fichiers manquants.

Voici le lien: http://code.macminivault.com/

Remarque importante: ce script définit le mot de passe root sous la forme d'une chaîne générée de façon aléatoire, qu'il enregistre sur le bureau, veillez donc à ne pas supprimer ce fichier et à noter le mot de passe. Il installe également le gestionnaire MySQL dans vos préférences système. Je ne suis pas sûr non plus de supprimer les bases de données existantes, alors faites attention à cela.


3

Dans mon cas, il s'agissait simplement de supprimer un fichier de verrouillage.

sudo rm -f /tmp/mysql.sock.lock

3

Je suis passé par ce problème et j'ai réussi à exécuter le serveur mysql en utilisant la solution ci-dessous

Installez mysql via .dmg( https://dev.mysql.com/downloads/mysql/5.7.html ), vous obtiendrez le panneau de service mysql dans les préférences système, puis démarrez mysql à partir du panneau et essayez

mysql -u root -p

Images jointes pour référence

Préférences de système

Panneau Mysql


2

Après avoir travaillé dessus pendant plusieurs heures, ce qui a fonctionné pour moi était d'aller dans / etc / mysql / et d'éditer le fichier my.cnf. Ajoutez ce qui suit

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

1
Cela a fait l'affaire pour moi aussi, bien que pour ma version os / mysql c'était: /etc/my.conf, et le socket était dans /var/lib/mysql/mysql.sock /var/log/mysqld.log devrait pointer vous à où se trouve le fichier socket.
keithpjolley

1

J'ai essayé toutes les manières possibles de résoudre ce problème, comme ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock, désinstallez et réinstallez mysql, assurez-vous que mysql fonctionne sur xampp mais rien ne fonctionne toujours .

Enfin, j'ouvre my.cnf (fichier de configuration) et copie le chemin du socket (assurez-vous de copier le chemin complet sinon cela ne fonctionnera pas). Ensuite, j'exécute cette commande dans mon terminal

mysql --socket=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

Et voilà, mysql se lance.

Cette solution ne fonctionnera que si votre MySQL est exécuté sur Xampp / Ampps, mais dans le terminal, il ne se connecte toujours pas au bon socket lorsque vous avez déjà tenté quelque chose comme:

./mysql -u root

ou

brew services start mysql

J'espère que ça aide!


J'ai également essayé toutes les solutions suggérées dans ce post, et cela n'a pas fonctionné. Avez-vous besoin d'installer xampp? je ne connais pas cela. J'ai seulement installé la version GPL du serveur mysql depuis le site officiel (.DMG). Je ne pense pas avoir cette application - XAMPP. Pouvez-vous s'il vous plaît développer? Merci.
Spencer Trinh

1

seulement cela a fait l'affaire pour moi brew services start --all (après avoir essayé toutes les réponses)


2
Expliquez comment cela est lié à la question.
mentallurg

1

Je vous recommanderais de courir

  mysql.server start

avant d'aller

  mysql -u root -p

afin de vous assurer que le serveur mysql fonctionne avant d'essayer de vous y connecter

Cela se produit plusieurs fois lorsque vous démarrez / redémarrez une machine sur laquelle aucun serveur mysql n'est en cours d'exécution.


1

Je reviens toujours à ce message, j'ai rencontré cette erreur plusieurs fois. Cela peut être lié à l'importation de toutes mes bases de données après une nouvelle installation.

J'utilise homebrew. La seule chose qui le réparait pour moi:

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

Ce matin, le problème est revenu après que ma machine ait décidé de s'arrêter du jour au lendemain. La seule chose qui l'a corrigé maintenant était de mettre à jour mysql.

brew upgrade mysql

0

Dans mon cas, juste après l'installation du MAMP, l'accès à mysql à partir du terminal donnait la même erreur de socket. À la fin, tout ce qu'il voulait, c'était un redémarrage et ça marche.


0

Beaucoup d'autres réponses utiles ici, mais rien n'a réglé cela pour moi. En fin de compte, rien de ce que j'ai trouvé sur ce site ou d'autres ne ferait fonctionner une version de MySQL de Homebrew pour moi.

Il était super facile de télécharger simplement le DMG à partir de https://dev.mysql.com/downloads/file/?id=479114 (trouver la version appropriée dont vous avez besoin) et de laisser l'assistant l'installer pour moi. La seule autre étape manuelle consistait à ajouter /usr/local/mysql/binà mon CHEMIN.

Je recommanderais cette option si l'infusion vous pose problème.

Mise à jour - si cela ne résout toujours pas le problème, essayez de purger complètement mysql avant d'installer via DMG. Suivez ces instructions: https://gist.github.com/vitorbritto/0555879fe4414d18569d


j'ai également installé via le fichier DMG, mais j'obtiens toujours cette erreur de socket. mysql --version fonctionne pour moi et --help, mais rien d'autre. J'ai ajouté à path afin de faire fonctionner les commandes --version et --help. pouvez-vous donner quelques conseils? Merci.
Spencer Trinh

Voir d'abord la mise à jour sur la purge de mysql. Cela a été corrigé pour moi-même et pour plusieurs collègues.
Patrick

0

Essaye ça

rm -rf /usr/local/var/mysql && brew postinstall mysql@5.7 && brew services restart mysql@5.7

0

Vous avez rencontré un problème similaire après la mise à niveau vers Catalina OS. Après avoir exécuté la commande mysqld, j'ai constaté qu'il y avait un problème avec le fichier journaux. Cela pourrait être différent pour les autres.

$ mysqld

Le problème était

2019-10-16T04:58:59.174474Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
2019-10-16T04:58:59.174508Z 0 [ERROR] Aborting

Résolu en le créant et en appliquant les autorisations appropriées.

sudo mkdir -p /var/log/mysql
sudo touch /var/log/mysql/error.log
sudo chown -R _mysql:mysql /var/log/mysql/

Redémarrez MySQL

brew services restart mysql@5.7

Le problème a été résolu.

mysql -uroot -proot

0

Après avoir essayé de nombreuses solutions, il semble que celle qui a finalement réussi à se connecter soit par IP. Les sockets de fichiers ne sont plus supprimés de manière aléatoire.

Mettez simplement à jour votre configuration client MySQL (par exemple /usr/local/etc/my.cnf) avec:

[client]
port = 3306
host=127.0.0.1
protocol=tcp

-4
  1. Désinstallez MySQL.
  2. Retirez /usr/local/var/mysql/.
  3. Installez MySQL.

1
Cela n'effacera-t-il pas toutes les bases de données que vous pourriez avoir? Cela me semble être une solution plutôt compliquée, d'autant plus que ce n'est probablement qu'un problème de MySQL qui ne fonctionne pas.
Martin Tournoij

oui, mais selon la question, c'était une nouvelle installation et donc l'hypothèse était qu'il n'y aurait pas de bases de données.
Amod Kulkarni
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.