Maison > base de données > tutoriel mysql > Explication détaillée du problème selon lequel MySQL ne peut pas se connecter à la base de données via localhost

Explication détaillée du problème selon lequel MySQL ne peut pas se connecter à la base de données via localhost

黄舟
Libérer: 2017-03-27 14:03:33
original
2283 Les gens l'ont consulté

L'éditeur suivant vous proposera un article qui résout parfaitement le problème de MySQL incapable de se connecter à la base de données via localhost. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.

Problème :Le programme PHP d'un serveur ne peut pas se connecter à la base de données via l'adresse localhost, mais si elle est définie à 127.0.0.1, la connexion est normale et la connexion à d'autres serveurs de base de données est également normale. Les autorisations de MySQL sont définies correctement et la base de données peut être connectée normalement via le client de ligne de commande mysql.

Analyse : Il s'agit d'une situation typique où la prise n'est pas réglée correctement.

Il existe deux façons de se connecter à la base de données MySQL  : TCP/IP (le type de port communément compris) et le socket Unix (généralement appelé socket ou sock) . Dans la plupart des cas, localhost peut être utilisé pour représenter la machine locale 127.0.0.1, mais lors de la connexion à MySQL, les deux ne peuvent pas être mélangés, et localhost et 127.0.0.1 sont également définis séparément dans les paramètres d'autorisation de MySQL. Lorsqu'il est défini sur 127.0.0.1, le système se connecte à la base de données via TCP/IP ; lorsqu'il est défini sur localhost, le système se connecte à la base de données via socket.

Solution : Vérifiez d'abord où se trouve le fichier de socket MySQL local. La commande à vérifier est :

mysqld --verbose --help | grep socket
Copier après la connexion

Résultats de sortie Afficher l'emplacement. du fichier socket, par exemple : ce serveur affiche

socket      /var/run/mysqld/mysqld.sock
Copier après la connexion

puis modifie le fichier de configuration php.ini du php pour qu'il lui corresponde.

Trouver cet élément :

mysql.default_socket =
Copier après la connexion

De manière générale, cet élément est vide, remplacez-le par :

mysql.default_socket = /var/run/mysqld/mysqld.sock
Copier après la connexion

L'étape précédente doit être écrite ici Interrogez les fichiers et paramétrez-les en fonction de votre situation. À ce stade, la configuration PHP a été modifiée. S'il s'agit du mode CLI (ligne de commande) ou du mode CGI, elle prendra effet immédiatement. S'il s'agit du mode FASTCGI, vous devez redémarrer le processus fastcgi.

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!

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