web-dev-qa-db-fra.com

Impossible de trouver mysql.sock

Je viens juste de réinstaller mysql et j'ai un problème pour le démarrer. Il ne peut pas trouver le socket (mysql.sock). Le problème est que ni l'un ni l'autre ne le peut. Sur 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 de socket?

  2. Si localiser renvoie un faux emplacement, il doit avoir une sorte de mémoire et probablement des index. Comment puis-je actualiser cet index?

69
Tony

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

courir 

% mysqladmin variables

et vérifiez la variable 'socket'

126
behas

Cela a résolu mon problème 

mysql_config --socket

METTRE À JOUR

mysql_config peut nous dire où doit se trouver le fichier mysql.sock, 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 bien maintenant.

35
Eugene Ramirez

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

S'il n'est pas trouvé, le répertoire supposé le contenir n'existe pas ou 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
17
Alnitak

Cela l'a trouvé pour moi:

netstat -ln | grep mysql

Mac OS X

15
zero_cool

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

Pendant le processus d'installation de Drupal, je devais dire quelle base de données je voulais utiliser Mais ma base de données 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 se trouve dans le mauvais répertoire

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

il m'a fallu beaucoup de temps pour rechercher toutes les informations importantes sur Google, mais il m'a fallu des heures pour savoir comment m'adapter, mais je peux maintenant présenter le résultat: D

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

10
Matthias D.

J'ai le chemin exact en utilisant:

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

Etant donné que ceci ne renvoie que le chemin et ne nécessite aucune entrée, vous pouvez potentiellement l'utiliser dans un script Shell.

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

3
mattbell87

Les questions initiales semblent provenir d'une confusion sur a) où se trouve le fichier, et b) où est-il recherché (et pourquoi ne pouvons-nous pas le trouver ici lorsque nous effectuons une localisation ou un grep). Je pense que le point de vue d'Alnitak était que vous voulez trouver où il était lié - mais grep ne vous montrera pas de lien, n'est-ce pas? Le fichier n'y habite pas, puisqu'il s'agit d'un lien, il ne s'agit que d'un pointeur. Vous devez toujours savoir où mettre le lien. 

mon fichier chaussette est définitivement dans/tmp et l'ERREUR que je reçois le cherche 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 signifie que le socket pourrait bien être utilisé, mais qu'il y a un problème avec le socket lui-même - afin d'éteindre la machine - complètement - de sorte que la prise se ferme. Ensuite, un redémarrage devrait résoudre le problème. J'ai essayé cela, mais cela n'a pas fonctionné pour moi (maintenant je me demande si j'ai redémarré trop vite? Vraiment?) Ce sera peut-être une solution pour quelqu'un d'autre. 

2
Amy D
$ mysqladmin variables | grep sock

Essayez plutôt ceci, cela produira le résultat demandé, en vous débarrassant des informations non liées.

1
soarinblue

(Q1) Comment puis-je trouver le fichier de socket?  

L'emplacement par défaut du fichier de socket est /tmp/mysql.sock. Pour trouver le fichier de socket de votre système, utilisez ceci.

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 un mot de passe vous est demandé, vous pouvez passer 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 la base de données de localisation avec cette commande.

Sudo /usr/libexec/locate.updatedb
0
Padhraic

Pour actualiser la base de données de localisation, j'ai exécuté

/usr/libexec/locate.updatedb
0
Timbinous

Je n'arrivais pas à trouver le socket mysql, donc j'ai réinstallé le serveur mysql (toutes les tables et tous les paramètres phpmyadmin ont été conservés). Voici les commandes: 

1) Installer

Sudo apt-get installer mysql-server

2) Suivez les étapes de configuration du terminal

Sudo mysql_secure_installation

3) Vérifier l'état: (doit renvoyer "Actif: actif (en cours d'exécution)")

statut systemctl mysql.service

0
Nika Tsogiaidze

Malheureusement, aucun des éléments ci-dessus n'a fonctionné dans mon cas. Mais finalement j'ai trouvé des solutions.

Pour trouver où se trouve le fichier mysql.sock, ouvrez simplement xampp manager, 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é changé et je devais le redéfinir en administrateur root avec: chmod root: admin mysql.sock

Après cela, la base de données avait été consultée.

0
szatti1489