Comment résoudre le problème selon lequel php mysql ne peut pas se connecter à la base de données

藏色散人
Libérer: 2023-03-03 16:26:02
original
3490 Les gens l'ont consulté

Solution au problème selon lequel php mysql ne peut pas se connecter à la base de données : obtenez d'abord le "mysql.default_socket" actuel et d'autres informations ; puis obtenez le chemin du socket MySQL et enfin ouvrez "php.ini" et modifiez les valeurs ; ​​comme "mysql.default_socket" .

Comment résoudre le problème selon lequel php mysql ne peut pas se connecter à la base de données

Recommandé : "Tutoriel vidéo PHP"

1 Obtenez le mysql.default_socket actuel, mysqli. . default_socket, informations de configuration pdo_mysql.default_socket

Créez un fichier PHP et affichez phpinfo() :

Ouvrir avec le navigateur :

Sur cette page, retrouvez les informations mysql.default_socket, mysqli.default_socket, pdo_mysql.default_socket :

2. Obtenez le chemin du socket MySQL

Entrez MySQL via la console, entrez la commande : STATUS, recherchez la valeur du socket UNIX

#mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8Server version: 5.7.11 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> STATUS--------------mysql  Ver 14.14 Distrib 5.7.11, for osx10.9 (x86_64) using  EditLine wrapper

Connection id:        8Current database:    
Current user:        root@localhost
SSL:            Not in use
Current pager:        lessUsing outfile:        ‘‘
Using delimiter:    ;
Server version:        5.7.11 MySQL Community Server (GPL)
Protocol version:    10Connection:        Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /tmp/mysql.sock
Uptime:            8 days 15 hours 1 min 17 sec

Threads: 2  Questions: 21  Slow queries: 0  Opens: 114  Flush tables: 1  Open tables: 0  Queries per second avg: 0.000--------------
Copier après la connexion

3. À ce stade, vous comparez mysql.default_socket, mysqli.default_socket, pdo_mysql.default_socket et constatez qu'ils sont différents via le socket MySQL UNIX. C'est la raison de l'avertissement mysql_connect(); Il y a un problème avec PHP lors de la configuration de mysql.

4. Reconfigurez PHP, ouvrez php.inimodifiez les valeurs de mysql.default_socket, mysqli.default_socket, pdo_mysql.default_socket pour : /tmp/mysql.sock

pdo_mysql.default_socket=/tmp/mysql.sock  
mysql.default_socket=/tmp/mysql.sock  
mysqli.default_socket=/tmp/mysql.sock
Copier après la connexion

ou modifiez le socket de my.cnf :

[client]  
socket=/tmp/mysql.sock  
  
[mysqld]  
socket=/tmp/mysql.sock
Copier après la connexion

5. Redémarrez nginx ou apache

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