Maison > base de données > tutoriel mysql > Pourquoi ne puis-je pas me connecter à mon serveur MySQL local via le socket ?

Pourquoi ne puis-je pas me connecter à mon serveur MySQL local via le socket ?

Linda Hamilton
Libérer: 2024-12-10 20:33:17
original
1102 Les gens l'ont consulté

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

Dévoilement du dilemme de connexion : comprendre la connexion par socket MySQL

Dans le cadre d'une tentative d'établissement d'une connexion à une base de données MySQL à l'aide de la classe mysqli de PHP, vous pouvez rencontrer l'erreur : "[Impossible de se connecter au serveur MySQL local via le socket 'MySQL' (2)]". Cette erreur se produit lorsque le client MySQL tente de se connecter via un socket de domaine Unix sur « localhost » au lieu d'une connexion TCP/IP.

Socket Unix vs connexion TCP/IP

Par défaut, les programmes MySQL sur les systèmes Unix privilégient les sockets de domaine Unix plutôt que les connexions TCP/IP lors de la connexion à « localhost ». Cependant, si le socket n'est pas disponible ou si vous avez spécifiquement besoin d'une connexion TCP/IP, une méthode différente doit être utilisée.

Résoudre le problème

Plusieurs solutions peuvent résoudre ce problème problème :

1. Connexion TCP/IP explicite :

Utilisez l'adresse IP "127.0.0.1" ou le nom d'hôte du serveur local au lieu de "localhost" dans votre chaîne de connexion. Cela oblige le client à établir une connexion TCP/IP.

2. Modification de la configuration PHP :

Localisez le fichier de configuration MySQL (my.cnf) et trouvez le chemin où MySQL établit le socket. Définissez mysqli.default_socket de PHP sur ce chemin dans php.ini.

3. Configuration explicite du socket :

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

$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
Copier après la connexion

Conclusion

Par en comprenant le mécanisme de connexion utilisé par MySQL, vous pouvez surmonter cette erreur et établir des connexions à la base de données réussies. N'oubliez pas que l'utilisation d'un socket de domaine Unix peut offrir des avantages en termes de performances et de sécurité, mais des connexions TCP/IP explicites peuvent être nécessaires dans certains cas.

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