Maison >développement back-end >Problème PHP >Que dois-je faire si PHP ne parvient pas à se connecter à MySQL ?
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.
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 "); //以下代码省略 ?>
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
PHPIniDir "D:/ccopen/php5/" LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll" AddType application/x-httpd-php .phpphp. Supprimez les deux lignes de points-virgules suivantes dans ini
Recommandations vidéo associées :
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!