Maison >développement back-end >tutoriel php >Pourquoi ne puis-je pas me connecter à mon serveur MySQL local via la classe mysqli de PHP ?
Lors de la tentative d'établissement d'une connexion à une base de données MySQL à l'aide de la classe mysqli en PHP, un une erreur peut survenir :
mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket 'MySQL' (2)
Cette erreur indique un problème de connexion via le socket spécifié, 'MySQL'.
Lors de la connexion à localhost en utilisant "localhost" comme hôte, MySQL tente d'utiliser un socket de domaine Unix pour une connexion plus rapide et potentiellement plus sécurisée. Cependant, si le socket n'est pas configuré ou accessible, la connexion échoue avec l'erreur 2.
Pour résoudre ce problème, plusieurs approches peuvent être adoptées :
1. Utiliser TCP/IP au lieu de Unix Socket :
Remplacez "localhost" par l'adresse IP 127.0.0.1 dans votre chaîne de connexion. Cela forcera une connexion TCP/IP.
2. Définition de mysqli.default_socket :
Localisez le fichier de configuration my.cnf pour MySQL et identifiez le chemin d'accès au socket. Ensuite, ouvrez le fichier php.ini et définissez la valeur 'mysqli.default_socket' sur ce chemin.
3. Configuration du Socket dans le script PHP :
Incluez le chemin du socket directement dans le script PHP lors de l'établissement de la connexion, comme indiqué ci-dessous :
$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
En implémentant l'une de ces solutions , vous pouvez contourner la connexion socket Unix et établir une connexion réussie à votre 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!