Maison > développement back-end > Problème PHP > Que dois-je faire si PHP ne parvient pas à se connecter à MySQL ?

Que dois-je faire si PHP ne parvient pas à se connecter à MySQL ?

coldplay.xixi
Libérer: 2023-03-07 08:04:02
original
3263 Les gens l'ont consulté

Solution au problème selon lequel PHP ne peut pas se connecter à mysql : recherchez d'abord le fichier [hosts] et rendez-le en lecture seule par défaut ; puis ouvrez-le avec le Bloc-notes, ajoutez [127.0.0.1 localhost] à la fin de le fichier et copiez-le sur le bureau.

Que dois-je faire si PHP ne parvient pas à se connecter à MySQL ?

Solution à PHP incapable de se connecter à MySQL :

Problème 1

J'ai installé MySQL et PHP sur mon ordinateur portable aujourd'hui, et tout a été installé normalement (php@IIS7.5-fastCGI). Cependant, lors de l'utilisation de phpmyadmin pour se connecter et tester, une erreur "#2002 Impossible de se connecter" apparaît. Le même problème se produit lors de l'utilisation d'autres programmes.

Après vérification, l'extension mysql de php est correctement installée et le service mysql démarre normalement - c'est étrange. J'ai utilisé Navicat pour me connecter à nouveau et il était connecté. . Il semble qu'il y ait un problème avec la communication entre php et mysql.

Après une recherche sur Baidu, le problème a été découvert :

Le paramètre du serveur de base de données de la fonction mysql_connect() est actuellement défini sur localhost, mais lorsqu'il est modifié en 127.0.0.1, il peut être accédé normalement.

Le fichier d'hôtes système ne fournit pas de résolution de 127.0.0.1 à localhost.

Solution (en prenant le système win7 comme exemple) : Recherchez le fichier C:\Windows\System32\drivers\etc\hosts. La valeur par défaut est en lecture seule. copier vers un autre chemin. Par exemple, sur le bureau, ouvrez le fichier (ouvrez avec : Bloc-notes) et ajoutez à la fin du fichier : 127.0.0.1 localhost

S'il existe déjà, supprimez le "#" dans devant lui.

Question 2

Les scripts php peuvent s'exécuter normalement, comme phpinfo().

Dès que la fonction "mysql_connect" apparaîtra, il n'y aura aucune réponse et aucune erreur ne sera signalée.

Si $conn = mysql_connect("127.0.0.1","root","xxxx") or die("MYSQL数据库连接失败:".mysql_error());

apparaît dans le répertoire des journaux Apache error.log

PHP Warning:  PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_mysql.dll'

Solution :

Copiez "libmysql.dll" dans le répertoire bin d'Apache. Redémarrez ensuite et observez le fichier error.log. Si l'erreur disparaît, félicitations.

Autre : les informations en ligne indiquent également de copier "libmysql.dll" et "php_mysql.dll" dans Windows/system32.

Question 3

Le code est le suivant

 $link_id=@mysql_connect( "localhost ", "sampadm ", "secret "); 
  //以下代码省略 
?>
Copier après la connexion

L'invite suivante apparaît lors de l'exécution :

erreur fatale : appel à fonction non définie mysql_connect( ) dans var/www/html/mytest.php

Solution :

1 Dans php.ini,

extension_dir est. défini sur "d: \apache2\php\ext "Chemin absolu, sinon des erreurs se produiront dans certains environnements.

Ouvrez les deux lignes suivantes d'extension de fonction

  • extension=php_mysql.dll

  • extension=php_mysqli.dll

2. Copiez libmysql.dll (sous le répertoire php) et php_mysql.dll (sous le répertoire php/ext) dans le répertoire c:\windows\system32 (libmysql.dll doit être dans le répertoire php, tel que le mien est libmysql.dll dans le répertoire D:\apache2\php, et php_mysql.dll est dans D:\apache2\php\ext)

Test,

1> ; Ouvrez d'abord la ligne de commande

A) Cliquez sur le menu "Démarrer"-> "mysql"-> >

//Comme ceci Si l'étape réussit, la sécurité mysql réussit. Si elle échoue, l'installation mysql échoue. Veuillez désinstaller et réinstaller

B) Entrez le mot de passe

/. /Si cette étape est normale, cela signifie que le mot de passe du compte root est correct. En cas d'échec, le mot de passe du compte est erroné

2> Créez un nouveau fichier dans le répertoire personnel et enregistrez-le sous testmysql.php, puis saisissez

dans le navigateur (ou http://localhost:81 /testmysql.php) http://localhost/testmysql.php

Sinon, vérifiez si apache a chargé les méthodes php et mysql

Apache supporte php5 et ajoutez les trois lignes suivantes au fichier httpd.conf

PHPIniDir "D:/ccopen/php5/"
LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
Copier après la connexion
php. Supprimez les deux lignes de points-virgules suivantes dans ini

  • extension=php_mysql.dll

  • extension=php_mysqli.dll

Copiez php_mysql.dll et libmysql.dll dans system32

Redémarrez le serveur Apache

Recommandations vidéo associées :

Programmation PHP de l'entrée à compétence

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