Impossible de trouver mysql.sock

J’ai juste dû réinstaller mysql et j’ai du mal à le démarrer. Il ne peut pas trouver le socket (mysql.sock). Le problème est que je ne le peux pas. Dans mon terminal Mac OS X 10.4, je tape: locate mysql.sock , et je récupère /private/tmp/mysql.sock . Il est logique que le fichier de socket existe à cet emplacement, mais ce n’est pas le cas.

  1. Comment trouver le fichier socket?

  2. Si la localisation retourne un faux emplacement, elle doit avoir une sorte de mémoire et probablement des index. Comment puis-je actualiser cet index?

pour répondre à la première partie de votre question:

courir

 % mysqladmin variables 

et vérifiez la variable ‘socket’

Cela a résolu mon problème

 mysql_config --socket 

METTRE À JOUR

mysql_config peut nous dire où le fichier mysql.sock devrait être, mais dans mon cas, le fichier n’existait pas. Donc, j’ai supprimé my.cnf:

 sudo rm -rf /etc/my.cnf 

Et puis redémarré mysql:

 brew services restart mysql 

Le fichier a été créé et mysql fonctionne maintenant correctement.

Le fichier socket doit être créé automatiquement au démarrage du démon MySQL.

S’il n’est pas trouvé, il est fort probable que le répertoire supposé le contenir n’existe pas ou qu’un autre problème de système de fichiers empêche la création du socket.

Pour savoir où le fichier devrait être, utilisez:

 % mysqld --verbose --help | grep ^socket 

Cela l’a trouvé pour moi:

 netstat -ln | grep mysql 

Mac OS X

Mon problème était aussi le fichier mysql.sock.

Pendant le processus d’installation de Drupal, je devais dire quelle firebase database je voulais utiliser, mais ma firebase database n’a pas été trouvée.

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

le système recherche mysql.sock mais il est dans le mauvais répertoire

tout ce que vous avez à faire est de le lier;)

il m’a fallu beaucoup de temps pour google toutes les informations importantes mais il m’a fallu même des heures pour savoir comment m’adapter, mais maintenant je peux présenter le résultat: D

ps: si vous voulez être exactement, vous devez lier votre /tmp/mysql.sock-file (si celui-ci se trouve aussi dans votre système) au répertoire indiqué par php.ini (ou php.default.ini) où pdo_mysql.default_socket= ...

J’ai le chemin exact en utilisant:

 netstat -ln | grep -o -m 1 -E '\S*mysqld?\.sock' 

Comme cela ne renvoie que le chemin et ne nécessite aucune entrée, vous pouvez éventuellement l’utiliser dans un script shell.

MySQL doit être en cours d’exécution sur votre machine pour que cela fonctionne. Fonctionne pour MariaDB aussi.

Les questions d’origine semblent provenir de la confusion concernant a) où est le fichier et b) où est-il recherché (et pourquoi ne pouvons-nous pas le trouver là lorsque nous effectuons une localisation ou un grep). Je pense que le point d’Alnitak était que vous voulez trouver où il était lié – mais grep ne vous montrera pas un lien, non? Le fichier ne vit pas là, car c’est un lien, c’est juste un pointeur. Vous devez toujours savoir où placer le lien.

mon fichier sock est définitivement dans / tmp et l’ERREUR que je reçois la recherche dans / var / lib / (pas seulement / var) J’ai lié à / var et / var / lib maintenant, et j’obtiens toujours l’erreur “Impossible de se connecter au serveur MySQL local via le socket ‘var / lib / mysql.sock’ (2)”.

Notez le (2) après l’erreur …. J’ai trouvé sur un autre thread que cela signifiait que le socket pouvait effectivement être utilisé, mais que quelque chose n’allait pas avec le socket lui-même – donc pour arrêter la machine – complètement – pour que la prise se ferme. Ensuite, un redémarrage devrait le réparer. J’ai essayé ceci, mais cela n’a pas fonctionné pour moi (maintenant je me demande si j’ai redémarré trop rapidement? Vraiment?) Peut-être que ce sera une solution pour quelqu’un d’autre.

Pour actualiser la firebase database de localisation, j’ai exécuté

 /usr/libexec/locate.updatedb 
 $ mysqladmin variables | grep sock 

Essayez plutôt ceci, cela affichera le résultat demandé, en éliminant les informations non liées.

(Q1) Comment trouver le fichier socket?

L’emplacement par défaut du fichier de socket est /tmp/mysql.sock, pour trouver le fichier de socket correspondant à votre système, utilisez-le.

 mysqladmin variables | grep socket 

Si vous venez d’installer MySQL, le fichier mysql.sock ne sera pas créé avant le démarrage du serveur. Utilisez cette commande pour le démarrer.

 sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 

Si vous êtes invité à entrer un mot de passe, vous pouvez transmettre le nom d’utilisateur root ou un autre nom d’utilisateur comme celui-ci. Terminal vous demandera le mot de passe.

 mysqladmin --user root --password variables | grep socket 

(Q2) Comment puis-je actualiser l’index de localisation

Actualisez le localisez la firebase database avec cette commande.

 sudo /usr/libexec/locate.updatedb 

Je reçois la même erreur sous Mac OS X 10.11.6:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Après beaucoup de détresse et de recherche de conseils ici et dans des questions connexes, dont aucune ne semblait résoudre le problème, je suis retourné et j’ai supprimé les dossiers installés, et je n’ai fait brew install mysql .

Toujours la même erreur avec la plupart des commandes, mais cela fonctionne:

/usr/local/bin/mysqld

et retourne:

/ usr / local / bin / mysqld: prêt pour les connexions.

Version: ‘5.7.12’ socket: ‘/tmp/mysql.sock’ port: 3306 Homebrew

Malheureusement, aucun de ces éléments n’a fonctionné dans mon cas. Mais finalement j’ai trouvé des solutions.

Pour trouver où se trouve le fichier mysql.sock, ouvrez simplement le gestionnaire xampp, sélectionnez MySQL et cliquez sur Configurer à droite. Dans le panneau de configuration, cliquez sur Ouvrir le fichier de configuration et recherchez simplement mysql.sock en appuyant sur le raccourci CMD + F.

Dans mon cas, le propriétaire de mysql.sock a été modifié et je devais le remplacer par root admin avec: chmod root: admin mysql.sock

Après cela, la firebase database avait été accédée.

Je n’ai pas pu trouver le socket mysql du tout ainsi le serveur mysql réinstallé (toutes les tables et les parameters phpmyadmin ont été préservés). Voici les commandes:

1) installer

sudo apt-get installe mysql-server

2) Suivez les étapes de configuration du terminal

sudo mysql_secure_installation

3) Vérifier l’état: (Devrait retourner “Actif: actif (en cours d’exécution)”)

status systemctl mysql.service

Je ne peux pas m’empêcher de répondre à la question n ° 1, mais pour actualiser la firebase database des fichiers, exécutez:

 updatedb