Bonjour. Je viens d'installer wampserver, sous Vista, pour créer un site sous Joomla en localhost.
L'installation semble s'être déroulée sans PB, et le survol de l'icône Wampserver indique "Server online". Mais à la fin de l'install de Joomla j'ai le message "Unable to connect to the database: Could not connect to MySQL". La commande "Restart All Services" ne change rien.
Une remarque : sur un autre ordi, Wamp indique toujours "server offline" et fonctionne néanmoins normalement.
Je fais quoi, à votre avis ?
Django
Modifie 3 fois. Derniere modification le 20/08/2008 à 12:53 par Django29.
Pour procéder par élimination il faut commencer par chercher si tu peux te connecter à la base.
Tu peux créer un fichier nomé testbd.php et mettre ce code dedant pour etre certain que la base se connecte.
<?php $ac_mysql_host = 'localhost'; $ac_mysql_user = 'root'; $ac_mysql_password = ''; /*ou le mot de passe si il y en a un, sinon laisser seulement '' */ $ac_mysql_db = 'nom_de_ma-base-creer-avec-phpmyadmin';
$connexion = mysql_connect ("localhost","root","","nom_de_ma-base" If (!$connexion) { echo "Désolé, connexion à " .SERVEUR. "impossible\n"; exit; } If ($connexion) { echo "connexion à " .SERVEUR. " possible et ok\n"; exit; } ?>
Le fichier va te répondre si tu peux te connecter a la base ou non
Si c'est NON tu dois trouver le fichier conf.php de Joomla et verifier que tu as bien renseigné login password et non de la base.
Pour ce qui concerne "server offline" ou "server online" cela indique simplement si tu choisis de laisser ton pc et ton travail placé dans le répertoire www accéssible depuis l'exterieur ou non. Dans les 2 cas cela fonctionne parfaitement la difference c'est juste l'accès de l'exterieur (ouvrir ou fermer la porte !)
Je suis allé un peu trop vite pour le code de la page testbd.php
Il n'est pas assez restrictif pour etre certain d'etre connecté à Mysql
Il est préférable d'utiliser celui la
testbd.php (version 2)
<?php
$db_host = "localhost"; $db_username = "root"; $db_password = ""; /*ou le mot de passe si il y en a un, sinon laisser seulement '' */ $db_name = "nom_de_ma-base-creer-avec-phpmyadmin";
//test de connection à la base Mysql avec message d'erreur si la connection n'est pas bonne
$connexion = mysql_connect($db_host,$db_username,$db_password) or exit('Erreur dans le fichier '.__FILE__.'<br>Ligne '.__LINE__.'<br>MySQL dit : '.mysql_error());
mysql_select_db($db_name,$connexion) or exit('Erreur dans le fichier '.__FILE__.'<br>Ligne '.__LINE__.'<br>MySQL dit : '.mysql_error());
//test de connection à la base Mysql avec message de confirmation de connection à la base Mysql si la connection est bonne
$connexion = mysql_connect ($db_host,$db_username,$db_password); If ($connexion) { echo "connexion à " .mysql. " possible et ok\n"; exit; }
Merci pour cette réponse. Tu sembles maîtriser le sujet.
Ton test répond "connexion à SERVEUR possible et ok "
Mais je ne trouve plus le fichier configuration.php dans le répertoire de Joomla1.5, contrairement à Joomla 1.0.15 que j'utilisais jusqu'à aujourd'hui.
Tu as bien fait le test avec le fichier testbd.php (version 2) ?
Non car ton test repond "connexion à SERVEUR possible et ok "
testbd.php (version 2) répond "connexion à mysql possible et ok "
Ensuite utilise la fonction rechercher windows pour trouver dans le répertoire /joomla/ le fichier configuration.php ou conf.php et verifie que tes informations de connection a la base sont identique a celles qui se trouvent dans le fichier testbd.php (version 2)
Django29, dans le script de test de connexion à la base de données ce qui suis est inutile et ne sert strictement à rien.
------------- /test de connection à la base Mysql avec message de confirmation de connection à la base Mysql si la connection est bonne
$connexion = mysql_connect ($db_host,$db_username,$db_password); If ($connexion) { echo "connexion à " .mysql. " possible et ok\n"; exit; } --------------
En effet, la ligne de demande de connexion au serveur MySql :
$connexion = mysql_connect($db_host,$db_username,$db_password) or exit('Erreur dans le fichier '.__FILE__.'<br>Ligne '.__LINE__.'<br>MySQL dit : '.mysql_error());
Affichera une erreur si la connexion ne s'est pas effectuée.
Et la ligne de choix de la base de données :
mysql_select_db($db_name,$connexion) or exit('Erreur dans le fichier '.__FILE__.'<br>Ligne '.__LINE__.'<br>MySQL dit : '.mysql_error());
Affichera, elle-aussi, une erreur si MySql ne peut pas se connecter à ladite base.
Donc, si ces deux instructions sont effectuées sans aucun message d'erreur, c'est que tout c'est bien passé.
Machin truc : j'avais fait le test avec ton 1er fichier avant de voir ton 2e message.
Je rappelle que je ne suis pas informaticien, mais simple utilisateur professionnel. Donc je recopie vos lignes de code sans comprendre leur fonctionnement précis.
Pour la création de mes sites précédents, Joomla 1.0.1X créait lui-même la base de données pendant son installation. Est-ce toujours le cas ?
Quand je teste ton fichier tel quel, puis sans la fin comme préconisé par Otomatic, j'ai un message : Erreur dans le fichier C:\wamp\www\test2bd.php Ligne 14 MySQL dit : Unknown database 'testbdd'
J'ai aussi effectué la recherche de configuration.php: niet. Il n'y a que configuration.php-dist qui n'est à utiliser qu'en secours (je ne m'en suis jamais servi).
Django29 a écrit: ------------------------------------------------------- > MySQL dit : Unknown database 'testbdd'
C'est clair (Pour qui comprend l'anglais !) vous tentez de vous connecter sur une base de données qui n'existe pas : "testbdd".
Le script donné va : - 1 - Tenter de se connecter au serveur MySql avec les paramètres hôte ($bd_host="localhost", user ($db_username = "root" et mot de passe ($db_password = "mon_passe". mon_passe peut être vide si vous n'en avez pas défini. - 2 - Tenter de se connecter sur une base de données si la connexion au serveur est bonne ($db_name="testbdd".
Encore faut-il que la base, en l'occurrence "testbdd" existe préalablement à la tentative de connexion.
Une base de données peut être créée, modifiée ou supprimée via PhpMyAdmin ou par la console MySql.
J'ai l'impression que la procédure d'install de Joomla 1.5 a changé, par rapport à celle de 1.0.15 avec laquelle la bdd était créée automatiquement. "Entrez l'identifiant, le mot de passe et le nom de la base de donnée MySQL à utiliser avec Joomla!. Ces éléments doivent déjà exister pour la base de donnée que vous allez utiliser."
je sais bien créer une base de donnée avec Phpmyadmin (en utf8-general c'est OK ?), mais je pense, et j'espère, que Joomla créé les tables de cette bdd.
J'ai donc refait le test sur 2 ordinateurs : pas de pb avec Joomla 1.0.15, et ça coince toujours à "Unable to connect to the database" avec Joomla 1.5.
Je commence à m'énerver passablement sur ce pb, (bientôt 1 jour de foutu), et je vais devoir revenir à l'ancienne version de Joomla. J'étais si content de passer à Joomla 1.5 !
En fait, le PB ne venait pas de Wampserver, mais de la procédure d'install de Joomla qui a effectivement changé, et sans doute de mon incompétence en informatique qui me faisait patauger dans les tripotages de phpmyadmin.
Le fichier configuration.php doit désormais être créé vide manuellement, et je viens de découvrir l'interface "Privilèges" de PHPmyadmin pour créer/paramétrer un utilisateur.
Octomatic a raison, ce qui suis est inutile et ne sert strictement à rien. Sauf pour un novice qui se demande pourquoi il a une page blanche parce que son test a réussit, c'est juste un option de confort de voir que la connexion a réussit ;-)
------------- /test de connection à la base Mysql avec message de confirmation de connection à la base Mysql si la connection est bonne
$connexion = mysql_connect ($db_host,$db_username,$db_password); If ($connexion) { echo "connexion à " .mysql. " possible et ok\n"; exit; } --------------
Simplifions, simplifions... pas besoin de test sur $connexion puisque on a un "exit" en cas d'erreur, c'est-à-dire que l'on arrête le script en affichant le message d'erreur et qu'aucune des instructions situées après "exit" ne sera exécutée.
$connexion = mysql_connect($db_host,$db_username,$db_password) or exit('Erreur dans le fichier '.__FILE__.'<br>Ligne '.__LINE__.'<br>MySQL dit : '.mysql_error());
echo "Bravo ! Vous êtes connecté au serveur Mysql";
mysql_select_db($db_name,$connexion) or exit('Erreur dans le fichier '.__FILE__.'<br>Ligne '.__LINE__.'<br>MySQL dit : '.mysql_error());
echo "Encore mieux ! Vous êtes connecté à votre base de données ".$db_name;
$connexion = mysql_connect($db_host,$db_username,$db_password) or exit('Erreur dans le fichier '.__FILE__.'<br>Ligne '.__LINE__.'<br>MySQL dit : '.mysql_error());
echo "Bravo ! Vous êtes connecté au serveur Mysql";
mysql_select_db($db_name,$connexion) or exit('Erreur dans le fichier '.__FILE__.'<br>Ligne '.__LINE__.'<br>MySQL dit : '.mysql_error());
echo "Encore mieux ! Vous êtes connecté à votre base de données ".$db_name;
?>
C'est dommage qu'on ne puisse pas avoir dans le menu un bouton "tutoriel" pour pouvoir consulter les questions fréquentes et ne pas reposer sans cesse les mêmes questions.
Ce fichier testbd.php est un bon exemple ;-)
Actuellement je me retrouve bloqué pour un autre problème par un manque de tutoriel. J'ai un problème avec localhost car je ne connais pas la procédure pour déclarer mon répertoire /v2/ qui se trouve dans le repertoire www donc l'url rewriting ne fonctionne pas voir ce post : [forum.wampserver.com] J'ai cherché partout mais je trouve pas de solution pour utiliser Wampserver avec plusieurs sites dans different répertoire et je suis quasi certain que cette question a déjà ét posé.
Je salut au passage le travail extraordinaire des développeurs de Wampserver qui nous donne la possibilité d’utiliser tout ça gratuitement.