Maison >développement back-end >tutoriel php >Pourquoi ne puis-je pas me connecter à mon serveur MySQL local via le socket et comment puis-je y remédier ?
Dépannage de l'erreur « Impossible de se connecter au serveur MySQL local via Socket »
L'erreur « Impossible de se connecter au serveur MySQL local via Socket » socket 'MySQL' (2)" se produit lors de la tentative de connexion à une base de données MySQL à l'aide de la classe PHP MySQLi. Cette erreur indique qu'une socket de domaine Unix, plutôt qu'une connexion TCP/IP, est tentée.
Comprendre les sockets de domaine Unix pour les connexions MySQL
Lors de la spécification de "localhost " en tant qu'hôte, la bibliothèque client MySQL utilise par défaut un socket de domaine Unix pour la connexion. Contrairement aux connexions TCP/IP, les sockets de domaine Unix exploitent un fichier de socket au sein du système d'exploitation pour établir la communication avec MySQL.
Résoudre le problème de connexion
Il existe plusieurs approches pour résoudre le problème. résoudre ce problème de connexion :
1. Spécifiez une connexion TCP/IP :
Pour appliquer une connexion TCP/IP au lieu d'un socket de domaine Unix, utilisez "127.0.0.1" comme hôte lors de la connexion. Cela garantit une connexion TCP/IP même lors de l'utilisation de "localhost".
2. Configurez le socket de domaine Unix :
Si vous préférez utiliser le socket de domaine Unix, localisez le chemin du socket dans le fichier de configuration MySQL "my.cnf" et définissez "mysqli.default_socket" de PHP sur ce chemin.
3. Configurer explicitement le socket dans le script PHP :
Vous pouvez également configurer le socket directement dans le script PHP lors de l'ouverture de la connexion. Par exemple :
$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
Choisir la méthode de connexion
La méthode de connexion optimale dépend de l'environnement spécifique. Les sockets de domaine Unix peuvent être plus rapides et plus sécurisées, mais elles nécessitent que le chemin du socket soit configuré. Les connexions TCP/IP, en revanche, ne nécessitent pas de configuration particulière mais peuvent être plus lentes.
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!