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

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

Susan Sarandon
Libérer: 2024-12-11 08:08:10
original
772 Les gens l'ont consulté

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

Impossible de se connecter au serveur MySQL via Socket : une erreur PHP courante

Lorsque vous essayez d'établir une connexion à une base de données MySQL à l'aide de PHP mysqli, vous pouvez rencontrer l'erreur suivante :

mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket 'MySQL' (2)
Copier après la connexion

Cette erreur suggère que la bibliothèque client MySQL tente d'utiliser un socket de domaine Unix pour la connexion, plutôt qu’une connexion TCP/IP. Cependant, le socket nommé « MySQL » n'existe pas ou est inaccessible.

Comprendre l'erreur

Lorsque vous utilisez « localhost » comme nom d'hôte pour la connexion MySQL, la bibliothèque cliente essaie automatiquement de se connecter via un socket Unix. Il s'agit d'une méthode de connexion plus rapide et plus sécurisée sur les systèmes basés sur Unix. Cependant, si le socket n'est pas correctement configuré ou n'existe pas, la connexion échouera.

Façons de résoudre le problème

Pour résoudre ce problème, vous pouvez :

  • Spécifiez le nom d'hôte : Utilisez 127.0.0.1 ou l'adresse IP du serveur local comme nom d'hôte au lieu de "localhost". Cela forcera le client à utiliser TCP/IP au lieu du socket.
  • Définissez le chemin du socket : Localisez le chemin d'accès au socket MySQL ("/var/run/mysqld/mysqld. sock" est un emplacement commun) et définissez l'option de configuration mysqli.default_socket de PHP sur ce chemin.
  • Configurer le Socket Directement : Spécifiez le chemin du socket directement dans le script PHP lors de l'établissement de la connexion à l'aide du paramètre socket. Par exemple :
$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
Copier après la connexion

En implémentant l'une de ces solutions, vous pouvez vous assurer que la connexion MySQL est établie correctement, éliminant ainsi l'erreur « Impossible de se connecter au serveur MySQL local via socket ».

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal