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
Résultats de sortie Afficher l'emplacement. du fichier socket, par exemple : ce serveur affiche
socket /var/run/mysqld/mysqld.sock
puis modifie le fichier de configuration php.ini du php pour qu'il lui corresponde.
Trouver cet élément :
mysql.default_socket =
De manière générale, cet élément est vide, remplacez-le par :
mysql.default_socket = /var/run/mysqld/mysqld.sock
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!