Maison >développement back-end >tutoriel php >Pourquoi mon script PHP ne peut-il pas se connecter au serveur MySQL via Socket ?
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)
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é.
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');
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!