Maison >base de données >tutoriel mysql >Pourquoi ne puis-je pas me connecter à MySQL via Unix Socket ?

Pourquoi ne puis-je pas me connecter à MySQL via Unix Socket ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 07:57:16824parcourir

Why Can't I Connect to MySQL via Unix Socket?

Impossible de se connecter à MySQL via un socket Unix : Impossible de se connecter à MySQL via le socket 'MySQL' (2)

Lors de la connexion à MySQL en utilisant la classe mysqli de PHP et en spécifiant "localhost" comme hôte, vous rencontrez le message d'erreur "Impossible de se connecter au serveur MySQL local via le socket 'MySQL' (2)." Cela indique un problème avec le socket Unix utilisé pour les connexions locales.

Comprendre les connexions Localhost

Par défaut, la bibliothèque client MySQL utilise un socket de domaine Unix pour se connecter au serveur MySQL local lorsque l'hôte est spécifié comme "localhost". Cependant, si le socket est inaccessible ou n'existe pas, vous rencontrerez cette erreur.

Options de dépannage

Pour résoudre ce problème, vous disposez de plusieurs options :

  1. Utiliser plutôt l'adresse IP (TCP/IP) : Changez l'hôte en 127.0.0.1 ou l'adresse IP réelle du serveur local. Cela force la connexion à utiliser un socket TCP/IP au lieu du socket Unix.
  2. Modifiez my.cnf (Socket Setting de PHP) : Dans le fichier de configuration MySQL (my.cnf), recherchez l'emplacement où MySQL crée le socket et définissez mysqli.default_socket dans le php.ini de PHP sur celui-ci chemin.
mysqli.default_socket = /var/run/mysqld/mysqld.sock
  1. Configuration du socket direct :
$db = new MySQLi('localhost', 'kamil', '***', '', 0, 
                              '/var/run/mysqld/mysqld.sock')

En spécifiant directement le socket, vous remplacez la valeur par défaut Configuration du socket Unix.

Dans votre cas, puisque vous ne pouvez vous connecter que via 127.0.0.1, en utilisant L'option 1 est recommandée. Si vous devez autoriser les connexions à des sites Web externes, vous devez créer un nouvel utilisateur avec les privilèges appropriés et utiliser TCP/IP (option 1) pour la connexion à distance.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn