Impossible de se connecter au serveur MySQL local via le socket ' / var / lib / mysql / mysql.chaussette' (2)

Je reçois l'erreur suivante lorsque j'essaie de me connecter à mysql:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Existe-t-il une solution pour cette erreur? Quelle pourrait être la raison derrière elle?

216
demandé sur user0118999881999119725 3 2010-12-15 12:33:00

30 réponses

Vous connectez-vous à "localhost" ou "127.0.0.1"? J'ai remarqué que lorsque vous vous connectez à "localhost" le connecteur est utilisé, mais lorsque vous vous connectez à "127.0.0.1" TCP/IP de connecteur est utilisé. Vous pouvez essayer d'utiliser "127.0.0.1" si le connecteur n'est pas permis de travail.

192
répondu Jan Thomä 2010-12-15 09:47:31

Assurez-vous que votre service mysql est en cours d'exécution

service mysqld start

Ensuite, essayez l'une des options suivantes:

(si vous n'avez pas défini de mot de passe pour mysql)

mysql -u root

Si vous avez déjà défini le mot de passe

mysql -u root -p
167
répondu Haja Peer Mohamed H 2014-05-09 14:25:13

Si votre fichier Mon.cnf (généralement dans le dossier etc) est correctement configuré avec

socket=/var/lib/mysql/mysql.sock

, Vous pouvez vérifier si mysql est en cours d'exécution avec la commande suivante:

mysqladmin -u root -p status

Essayez de changer votre autorisation pour le dossier mysql. Si vous travaillez localement, vous pouvez essayer:

sudo chmod -R 777 /var/lib/mysql/

Qui l'a résolu pour moi

24
répondu marimaf 2011-11-10 19:04:58

Le serveur MySQL n'est pas en cours d'exécution, ou ce n'est pas l'emplacement de son fichier socket (vérifiez mon.cnf).

19
répondu Dan Grossman 2010-12-15 09:34:23

Plus susceptibles mysql.sock n'existe pas dans /var/lib/mysql/.

Si vous trouvez le même fichier dans un autre emplacement, alors le lien symbolique:

Ex: je l'ai dans /data/mysql_datadir/mysql.sock

Basculez l'utilisateur vers mysql et exécutez comme mentionné ci-dessous:

su mysql

ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock

Qui a résolu mon problème

17
répondu sreddy 2012-10-26 16:25:52

Dans mon cas, j'ai déplacé le fichier socket vers un autre emplacement à l'intérieur de /etc/my.cnf à partir de /var/lib/mysql/mysql.sock à /tmp/mysql.sock

Même après avoir redémarré le service mysqld, je vois toujours le message d'erreur lorsque j'essaie de me connecter. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Le problème est avec la façon dont le client est configuré. L'exécution de diagnostics montrera réellement le chemin de socket correct. par exemple ps aux | grep mysqld

Fonctionne:

mysql -uroot -p -h127.0.0.1
mysql -uroot -p --socket=/tmp/mysql.sock

Ne fonctionne pas:

mysql -uroot -p
mysql -uroot -p -hlocalhost

Vous pouvez corriger ce problème en ajoutant le même socket ligne sous [client] section dans mysql config.

11
répondu Dejan 2013-10-21 17:23:57

Si vous êtes sur un RHEL récent, vous devrez peut-être démarrer mariadb (une base de données mysql open source) au lieu de la base de données mysql:

yum remove mysql
yum -y install mariadb-server mariadb
service mariadb start

Vous devriez alors pouvoir accéder à mysql de la manière habituelle:

mysql -u root -p
10
répondu duhaime 2016-05-26 23:08:13

Vérifiez si votre service mysqld est en cours d'exécution ou non, sinon, démarrez le service.

Si votre problème n'est pas résolu, recherchez /etc/my.cnf et modifiez comme suit, où vous voyez une ligne commençant par socket. Faire une sauvegarde de ce fichier avant de faire cette mise à jour.

socket=/var/lib/mysql/mysql.sock  

Changer pour

socket=/opt/lampp/var/mysql/mysql.sock -u root
8
répondu VKGS 2017-02-22 11:22:40

Il suffit d'éditer /etc/my.cnf Ajouter les lignes suivantes à my.cnf

[mysqld]

socket=/var/lib/mysql/mysql.sock 

[client]

socket=/var/lib/mysql/mysql.sock

Redémarrez mysql et connectez-vous à nouveau

Mysql -u utilisateur -p mot de passe de la base de données -h hôte;

7
répondu minhas23 2014-01-24 14:50:09

Assurez-vous d'avoir suffisamment d'espace dans /var. Si Mysql demon n'est pas capable d'écrire des informations supplémentaires sur le lecteur, le serveur mysql ne démarre pas et cela entraîne l'erreur Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Pensez à utiliser

expire_logs_days = 10
max_binlog_size = 100M

Cela vous aidera à réduire l'utilisation du disque.

7
répondu Karthik 2017-02-22 11:22:07

Voici ce qui a fonctionné pour moi:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysqld restart
5
répondu User 2015-02-25 00:20:50

MariaDB, un fork développé par la communauté de MySQL, est devenu L'implémentation par défaut de MySQL dans de nombreuses distributions.

Donc d'abord vous devriez commencer,

$ sudo systemctl start mariadb

Si cela échoue plutôt essayer,

$ sudo systemctl start mysqld

Puis pour démarrer mysql,

$ mysql -u root -p

, dès aujourd'hui, dans Fedora le paquet est nommé mariadb Et dans Ubuntu, il s'appelle mariadb-server.

Vous devrez peut-être l'installer si ce n'est pas déjà installé dans votre système.

5
répondu Gayan Weerakutti 2016-10-23 12:18:15

Veuillez vérifier si un autre service mysql est en cours d'exécution.

4
répondu Kishore Relangi 2013-06-15 17:45:19

Assurez-vous que vous avez démarré le serveur:

mysql.server start

Puis connectez-vous avec l'utilisateur root:

mysql -uroot
4
répondu Deniz Ozger 2014-03-31 22:07:53

Essayez

echo 0 > /selinux/enforce
3
répondu dvin 2013-09-16 16:40:29

Si vous modifiez des fichiers dans/var/lib / mysql [ comme copier ou remplacer cela ], vous devez définir le propriétaire des fichiers sur mysql c'est si important si mariadb.le redémarrage du service a été faild

Chown-R mysql: mysql / var / lib / mysql / *

Chmod-R 700 / var / lib / mysql/ *

3
répondu Mohsen Beiranvand 2015-11-12 22:11:18

Si votre mysql fonctionnait auparavant et s'est arrêté soudainement, il suffit de "redémarrer" le serveur.

Était confronté à ce problème sur mon VPS CentOS.->

Obtenait constamment

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'(2)

Essayé toutes les techniques, enfin redémarrer le serveur a corrigé les problèmes - >

shutdown -r now

Espérons que cela aide !!

2
répondu Shashank Agarwal 2012-11-12 05:15:25

Entrez D'abord "service mysqld start" et connectez-vous

2
répondu hPrasad 2013-05-07 03:30:02

Veuillez vous assurer que vous avez installé le serveur MySQL correctement, j'ai rencontré cette erreur plusieurs fois et je pense qu'il est compliqué de déboguer à partir du socket, je veux dire qu'il pourrait être plus facile de le réinstaller.

Si vous utilisez CentOS 7, Voici la bonne façon de l'installer:

Tout d'abord, ajoutez la source de la communauté mysql
yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

Ensuite, vous pouvez l'installer par yum install mysql-community-server

Démarrez-le avec systemctl: systemctl start mysqld

2
répondu Zernel 2015-08-13 09:32:10

Mon problème était que j'ai installé mysql avec succès et cela a bien fonctionné.

, Mais un jour, la même erreur s'est produite.

impossible de se connecter au serveur MySQL local via le socket ' / var / lib / mysql / mysql.chaussette' (2)

Et pas de mysql.fichier chaussette existait.

Cette solution a résolu mon problème et mysql a été de nouveau opérationnel:

Connectez - vous en tant que root:

sudo su -

Exécuter:

systemctl stop mysqld.service
systemctl start mysqld.service
systemctl enable mysqld.service

Test en tant que root:

mysql -u root -p

Mysql devrait maintenant être activé et exécuter.

J'espère que cela peut aider quelqu'un d'autre aussi.

1
répondu bharald 2013-10-03 09:30:41

Notez que si mysql lit les informations de l'emplacement du socketfile à partir du my.fichier cnf, le programme mysql_secure_installation semble ne pas le faire correctement parfois.

Donc, si vous êtes comme moi et mélangez les choses au moment de l'installation, vous pourriez vous retrouver dans la situation où vous pouvez vous connecter à la base de données avec mysql, mais la chose ne peut pas être sécurisée (ne pas utiliser ce script de toute façon).

Pour résoudre ce la suggestion de sreddy fonctionne bien: faire un softlink de où le script s'attendrait à ce que le socket soit là où il se trouve réellement. Exemple:

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

(j'utilise /tmp / comme emplacement par défaut pour les sockets)

1
répondu Ellert van Koperen 2013-10-14 21:50:18

Une façon de reproduire cette erreur: si vous vouliez vous connecter à un serveur étranger mais vous connecter à un serveur local inexistant:

eric@dev ~ $ mysql -u dev -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through 
socket '/var/lib/mysql/mysql.sock' (2)
eric@dev ~ $

Vous devez donc spécifier l'hôte comme ceci:

eric@dev ~ $ mysql --host=yourdb.yourserver.com -u dev -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 235
Server version: 5.6.19 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+-------------------------+
| Database                |
+-------------------------+
| information_schema      |
| mysql                   |
| performance_schema      |
+-------------------------+
3 rows in set (0.00 sec)

mysql> exit
Bye
eric@dev ~ $
1
répondu Eric Leschinski 2014-07-28 14:17:22

Cela peut être une suggestion stupide mais assurez-vous à 100% que votre base de données est toujours hébergée sur localhost. Par exemple, si un administrateur réseau a choisi (ou changé pour) Amazon DB hosting, vous aurez besoin de ce nom d'hôte à la place!

1
répondu The One and Only ChemistryBlob 2016-04-15 15:52:45

A rencontré ce problème en essayant de connecter mysql dans le client SSH, trouvé en ajoutant le chemin de socket à la commande utile lors de la commutation entre les sockets est nécessaire.

> mysql -u user -p --socket=/path/to/mysql5143.sock
0
répondu Jaak Kütt 2014-01-24 14:47:05

Cela a fonctionné pour moi avec les changements suivants

Quel que soit le chemin pour socket est mentionné dans [mysqld] et même dans [client] dans my.cnf et redémarrer mysql

[mysqld] socket=/var/lib/mysql/mysql.chaussette

[client] socket=/var/lib/mysql/mysql.chaussette

0
répondu minhas23 2014-02-13 04:13:01

Ceci est un problème si vous manquez d'espace disque. La Solution est de libérer de l'espace du disque dur.

Veuillez lire plus pour avoir l'explication:

Si vous utilisez MySQL sous LINUX, Vérifiez l'espace libre du disque dur avec la commande disk free:

 df 

Si vous obtenez quelque chose comme ça :

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2              5162828   4902260         0 100% /
udev                    156676        84    156592   1% /dev
/dev/sda3              3107124     70844   2878444   3% /home

Alors c'est le problème et maintenant vous avez la solution!

Depuis mysql.sock veut être créé dans le dossier mysql qui est presque toujours sous le dossier racine n'a pas pu y parvenir en raison du manque d'espace.

Si vous donnez périodiquement la commande ls sous le répertoire mysql (à openSUSE 11.1 est à / var / lib / mysql), vous obtiendrez quelque chose comme:

hostname:/var/lib/mysql #
.protected  IT     files        ibdata1             mysqld.log  systemtemp
.tmp        NEWS   greekDB      mysql               mysqld.pid  test
ARXEIO      TEMP1  ib_logfile0  mysql.sock          polis
DATING      deisi  ib_logfile1  mysql_upgrade_info  restore

Le mysql.chaussette fichier apparaissant et disparaissant souvent (vous devez essayer d'attribuer les ls de frapper un exemple avec mysql.chaussette fichier sur dossier).

Ceci est causé par un espace disque insuffisant.

J'espère que je vais aider certaines personnes!!!! Merci!

0
répondu c.chasapis 2014-02-13 19:49:48

J'ai dû désactiver explicit_defaults_for_timestamp de mon.cnf.

0
répondu powtac 2014-06-01 10:13:29

Essayez d'abord 2, 3 solutions. L'erreur est stil popup & si vous ne trouvez pas /var/lib/mysql/mysql.sock

find /var/ -name mysql.sock

Vérifier l'espace disponible dans /var/

df

Si le répertoire est plein, supprimez certains fichiers/répertoires inutilisés

rm /var/cache/*

Probablement votre problème sera trié maintenant.

0
répondu Sadee 2015-02-13 15:56:27

Si vous êtes dans la coquille de sf.net, essayez:

mysql --host=mysql-{LETTER} --user={LETTER}{GROUP ID}admin -p

Modifiez {LETTER} et {GROUP ID} comme indiqué dans votre base de données MySQL du profil d'administrateur du projet.

0
répondu Chetabahana 2016-01-03 20:58:11

Il suffit de pleuvoir sur le même problème - et voici comment je l'ai abordé.

En supposant que mysqld est en cours d'exécution, le problème pourrait simplement être le client mysql ne sachant pas où chercher le fichier socket.

La façon la plus simple d'y remédier consiste à ajouter la ligne suivante au fichier profile .my.cnf de votre utilisateur (sous linux qui se trouve généralement sous / home / myusername):

socket=<path to the mysql socket file>

Si vous n'avez pas de fichier .my.cnf, créez-en un contenant suivant:

[mysql]
socket=<path to the mysql socket file>

Dans mon cas, puisque j'ai déplacé le dossier de données par défaut mysql (/var/lib/mysql) dans un emplacement différent (/data / mysql), j'ai ajouté à. my. cnf ce qui suit:

[mysql]
socket=/data/mysql/mysql.sock

J'espère que cela aide.

-1
répondu adriano72 2013-08-26 06:27:42