Maison >développement back-end >tutoriel php >Pourquoi mon script PHP ne peut-il pas se connecter au serveur MySQL via Socket ?

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

Patricia Arquette
Patricia Arquetteoriginal
2024-12-08 21:05:18556parcourir

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

Erreur : Impossible de se connecter au serveur MySQL via Socket

Problème

Lors de la tentative de connexion à une base de données MySQL à l'aide de la classe PHP MySQLi, le L'erreur suivante se produit :

mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket 'MySQL' (2)

Analyse

Le message d'erreur suggère que MySQL La bibliothèque client tente de se connecter au serveur via un socket de domaine Unix nommé "MySQL", mais le socket n'existe pas ou n'est pas disponible.

Selon la documentation MySQL, la bibliothèque client traite le nom d'hôte "localhost " spécialement sur les systèmes Unix. Par défaut, il essaie de se connecter à l'aide d'un fichier socket Unix, même si un numéro de port est spécifié.

Résolution

Pour résoudre cette erreur, envisagez les options suivantes :

1. Utilisez TCP/IP :

Utilisez 127.0.0.1 comme nom d'hôte au lieu de "localhost" lors de l'établissement de la connexion. Cela obligera la bibliothèque à utiliser une connexion TCP/IP, plus fiable et portable.

2. Changez Socket dans php.ini :

Localisez le fichier de configuration MySQL (my.cnf) et recherchez le chemin où MySQL crée le socket. Ensuite, définissez la directive mysqli.default_socket de PHP sur ce chemin dans le fichier php.ini.

3. Configurer le socket dans le script PHP :

Spécifiez le socket directement dans le script PHP lors de l'ouverture de la connexion :

$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');

Informations supplémentaires

Si vous vous connectez à distance Adresse IP, assurez-vous d'avoir créé un utilisateur avec les privilèges nécessaires pour les connexions externes dans la base de données MySQL.

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