GNU/Linux >> Tutoriels Linux >  >> Linux

erreur :'Impossible de se connecter au serveur MySQL local via le socket '/var/run/mysqld/mysqld.sock' (2)' -- manquant /var/run/mysqld/mysqld.sock

Essayez cette commande,

sudo service mysql start

Pour trouver tous les fichiers de socket sur votre système, exécutez :

sudo find / -type s

Mon système de serveur Mysql avait le socket ouvert à /var/lib/mysql/mysql.sock

Une fois que vous avez trouvé où le socket est ouvert, ajoutez ou modifiez la ligne de votre fichier /etc/my.cnf avec le chemin d'accès au fichier socket :

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

Parfois, le script de démarrage du système qui a lancé l'exécutable de la ligne de commande spécifie un indicateur --socket=path . Cet indicateur pourrait remplacer l'emplacement my.cnf, ce qui entraînerait l'absence de socket là où le fichier my.cnf l'indique. Ensuite, lorsque vous essayez d'exécuter le client de ligne de commande mysql, il lira my.cnf pour trouver le socket, mais il ne le trouvera pas car il s'écarte de l'endroit où le serveur en a créé un. Donc, à moins que vous ne vous souciez de l'emplacement du socket, il suffit de changer my.cnf pour qu'il corresponde.

Ensuite, arrêtez le processus mysqld. La manière dont vous procéderez variera selon le système.

Si vous êtes un super utilisateur du système Linux, essayez l'une des méthodes suivantes si vous ne connaissez pas la méthode spécifique utilisée par votre configuration Mysql :

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • Certains systèmes ne sont pas configurés pour avoir un moyen élégant d'arrêter mysql (ou pour une raison quelconque, mysql ne répond pas) et vous pouvez forcer l'arrêt de mysql avec :
    • Une étape :pkill -9 mysqld
    • Deux étapes (la moins préférée) :
      • Trouvez l'ID de processus de mysql avec soit pgrep mysql ou ps aux | grep mysql | grep -v grep
      • En supposant que l'ID de processus est 4969 terminer par kill -9 4969

Après cela, vous voudrez peut-être rechercher un fichier pid dans /var/run/mysqld/ et supprimez-le

Assurez-vous que les permissions sur votre socket sont telles que tout utilisateur mysqld en cours d'exécution peut lire/écrire dessus. Un test simple consiste à l'ouvrir en lecture/écriture complète et à voir s'il fonctionne toujours :

chmod 777 /var/run/mysqld/mysqld.sock

Si cela résout le problème, vous pouvez personnaliser les autorisations et la propriété du socket selon vos besoins en fonction de vos paramètres de sécurité.

De plus, le répertoire dans lequel réside le socket doit être accessible par l'utilisateur exécutant le processus mysqld.


Cette erreur se produit en raison de plusieurs installations de mysql. Exécutez la commande :

ps -A|grep mysql

Tuez le processus en utilisant :

sudo pkill mysql

puis exécutez la commande :

ps -A|grep mysqld

Tuez également ce processus en exécutant :

sudo pkill mysqld

Maintenant que vous êtes entièrement configuré, exécutez simplement les commandes suivantes :

service mysql restart
mysql -u root -p

Ayez à nouveau très bien mysql de travail


Linux
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Différence entre /var/log/messages, /var/log/syslog et /var/log/kern.log ?

  3. Erreur fatale :impossible d'ouvrir et de verrouiller les tables de privilèges :la table 'mysql.host' n'existe pas

  4. J'obtiens une erreur indiquant que la liaison de socket a échoué pour :/var/run/rendern/rendend.sock si je suis un utilisateur régulier, sinon tout fonctionne bien ?

  5. Arrêt du serveur de base de données MySQL :échec de mysqld

Comment réparer Impossible de se connecter au serveur MySQL local via socket /var/run/mysqld/mysqld.sock (2)

Impossible de se connecter au serveur MySQL erreur 111

Django static_root dans /var/www/... - aucune autorisation pour collectstatic

Comment accéder à Postgres lorsque j'obtiens une erreur à propos de /var/run/postgresql/.s.PGSQL.5432 ?

Les sites Web doivent-ils vivre dans /var/ ou /usr/ selon l'utilisation recommandée ?

Pourquoi me manque-t-il /var/run/sshd après chaque démarrage ?