Maison >développement back-end >tutoriel php >Pourquoi ne puis-je pas me connecter à mon serveur MySQL local via la classe mysqli de PHP ?

Pourquoi ne puis-je pas me connecter à mon serveur MySQL local via la classe mysqli de PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-04 00:34:10485parcourir

Why Can't I Connect to My Local MySQL Server via PHP's mysqli Class?

Dépannage de l'erreur « Impossible de se connecter au serveur MySQL » lors de l'utilisation de Localhost

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'.

Utilisation du socket dans les connexions localhost

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.

Résolution du problème de connexion

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!

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