Maison >base de données >tutoriel mysql >Pourquoi mon code PHP ne peut-il pas se connecter au serveur MySQL via Socket ?

Pourquoi mon code PHP ne peut-il pas se connecter au serveur MySQL via Socket ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-23 13:14:14310parcourir

Why Can't My PHP Code Connect to the MySQL Server via Socket?

Impossible de se connecter au serveur MySQL via Socket : dépannage

Lors de la connexion à une base de données MySQL à l'aide de la classe mysqli de PHP, vous pouvez rencontrer le problème erreur "Impossible de se connecter au serveur MySQL local via le socket 'MySQL' (2)." Cela indique que la bibliothèque client MySQL tente de se connecter via un socket de domaine Unix plutôt qu'une connexion TCP/IP.

Socket de domaine Unix contre connexion TCP/IP

Par défaut, la bibliothèque client MySQL utilise un socket de domaine Unix lors de la connexion à localhost. Il s'agit d'une méthode de connexion plus rapide et plus sécurisée, mais elle ne peut être utilisée qu'avec localhost. Pour vous connecter à MySQL en utilisant TCP/IP, spécifiez 127.0.0.1 comme nom d'hôte ou utilisez l'option --protocol=TCP.

Solutions à l'erreur

Il existe plusieurs façons de résoudre cette erreur :

  • Utiliser TCP/IP Connexion : Modifiez le nom d'hôte en 127.0.0.1 dans votre script PHP pour forcer une connexion TCP/IP.
  • Configurer le chemin du socket : Localisez le chemin d'accès au socket Unix dans le Fichier de configuration MySQL (my.cnf) et définissez mysqli.default_socket de php.ini sur celui-ci path.
  • Configurer le socket directement en PHP : Utilisez le paramètre socket lors de l'ouverture de la connexion pour spécifier directement le chemin du socket, comme indiqué dans l'exemple ci-dessous :
$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock')

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