Maison > base de données > tutoriel mysql > Pourquoi ma connexion PDO échoue-t-elle avec « Aucun fichier ou répertoire de ce type (tentative de connexion via unix:///tmp/mysql.sock) » lors de l'utilisation de « localhost » ?

Pourquoi ma connexion PDO échoue-t-elle avec « Aucun fichier ou répertoire de ce type (tentative de connexion via unix:///tmp/mysql.sock) » lors de l'utilisation de « localhost » ?

DDD
Libérer: 2024-11-03 07:38:30
original
1042 Les gens l'ont consulté

Why Does My PDO Connection Fail With

Erreur de connexion PDO : "Aucun fichier ou répertoire de ce type (tentative de connexion via unix:///tmp/mysql.sock)"

Dans cette question, l'utilisateur exprime son inquiétude concernant un problème de connexion à une base de données via PDO, qui fonctionnait auparavant. L'utilisateur est perplexe car il n'a modifié aucun paramètre lié au code ou à la base de données et n'est pas sûr de la racine du problème.

L'extrait de code PHP fourni par l'utilisateur suggère qu'il tente d'établir une connexion TCP/IP. à une base de données en utilisant un nom d'hôte de "localhost". Cependant, le message d'erreur indique plutôt une tentative de connexion via un socket Unix.

Solution :

L'utilisateur tente involontairement d'utiliser un socket Unix à cause du PHP gestion par défaut de "localhost" par la bibliothèque cliente. Cette bibliothèque interprète « localhost » comme un emplacement de socket plutôt que comme un hôte TCP.

Pour résoudre cette erreur et établir une connexion TCP/IP à la machine locale, l'utilisateur doit remplacer « 127.0.0.1 » comme nom d'hôte. dans leur code PHP :

<code class="php">new PDO('mysql:host=127.0.0.1;port=3306;dbname=test', 'username', 'password');</code>
Copier après la connexion

Si l'intention est d'utiliser un socket Unix, l'utilisateur peut spécifier explicitement son emplacement dans le DSN en utilisant l'option DSN "unix_socket" au lieu de "host". L'emplacement du socket Unix utilisé pour localhost peut être configuré au moment de la compilation ou, dans certaines versions de PHP, en modifiant le paramètre "pdo_mysql.default_socket" dans le fichier php.ini.

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal