Aucune erreur mysql...

Nouveau WRInaute
Bonjour, je viens d' installer Apache 2.0.54, PHP 5.0.5, MySQL 4.1, et phpMyAdmin 2.6.4-pl1.


J'ai un gros problême:

Je n'ai aucune erreur qui m'indique que je n'arrive pas à me connecter à mysql:

Code:
$serveur = "localhost";
$login   = "quentin49";
$pwd     = "******";
$base    = "quanquan";
$table   = "webechange";

$db_link = @mysql_connect('$serveur', '$login', '$pwd') or die(mysql_error());

mysql_select_db('$base', $db_link) or die(mysql_error());

Est-ce que quelqu'un pourrais m'aider ?

Merci d'avance.
 
WRInaute passionné
Tiens c'est rigolo, qulqu'un qui se plaint de ne pas avoir de message d'erreur... :)

Bonjour et bienvenue :

essaye d'enlever le @...

;)
 
WRInaute accro
>> Je n'ai aucune erreur qui m'indique que je n'arrive pas à me connecter à mysql:

PS : ptetre aussi que tu y est connecté à ta BDD :)
 
Nouveau WRInaute
je veux dire que j'ai fait exprès de faire une erreur en mettant un mauvais identifiant et sa ne m'indique aucune erreur...

on dirait que sa n'arrive pas a se connecter...
 
Nouveau WRInaute
Fatal error: Call to undefined function mysql_connect() in C:\webdev\www\include\config.php on line 9

ce qui correspond à:

Code:
$db_link = mysql_connect('$serveur', '$login', '$pwd') or die(mysql_error());

Quelle peut-être l'erreur ?
 
WRInaute impliqué
Vérifie que ton PHP n'est pas compliqué avec mysqli (nouvelles fonctions correspondant aux versions >= 4.1 de mysql) au lieu de mysql.
 
WRInaute impliqué
Bah, utilises mysqli :)

C'est quasiment les mêmes fonctions pour le style proccédurale, mais tu as aussi une version de la bibliothèque orienté objet :)

Pour ton ancien code avec mysql, en général, il te suffit pour chacune des fonctions de remplacer "mysql_" par "mysqli_", et de rajouter ton id de connexion mysqli à en paramètre :

http://php.belnet.be/manual/fr/ref.mysqli.php

Sinon, il faut recompiler PHP.
 
Nouveau WRInaute
et sais-tu comment faire en sorte que mysql marche car je fait un site qui sera à vendre et g pas envi de me lancer dans " mysqli " ... ?
 
WRInaute impliqué
Bah là comme je t'ai dit, il faut recompiler PHP.

Après tu vas quand même devoir bidouiller pour que ça fonctionne : changer l'encryptage du mot de passe de connexion à mysql ou alors upgrader le client mysql de PHP, ou encore désactiver l'authentification (pas recommandé du tout) de connexion au serveur mysql.
 
WRInaute impliqué
Si c'est bien compilé, le panel de fonction mysql sera réactivé, ce qui sera le premier pas vers un bon fonctionnement.

Par contre, il te faudra faire encore de la config pour passer l'authentification mysql.

En effet, le chiffrement de l'authentification a été modifié à partir de mysql 4.1, et c'est pour cela que la nouvelle bibliothèque mysqli a été crée.

Je reste persuadé qu'il serait plus judicieux d'utiliser mysqli, c'est beaucoup moins compliqué à mon sens d'adapter son code, plutôt que de recompiler l'interprêteur, puis faire de la bidouille pour passer l'authentification. Enfin, cela n'engage que moi ;)
 
Nouveau WRInaute
et tu n'aurais pas un tutorial pour installer apache, mysql, php et phpmyadmin avec directement mysqli à la place de mysql ?

Merci d'avance.
 
WRInaute impliqué
Non malheureusement, peut être en cherchant un peu sur notre ami Google.

Sinon, y a une solution assez simple, downgrader ton PHP. Tu prends une version anté-mysqli, et tu es sur qu'il sera compilé ac mysql.

Si biensur tu n'as pas besoin de fonctionnalitée spécifique à PHP 5.
 
Nouveau WRInaute
j'ai installé la version php4, et lors du lancement de apache g une erreur. Alors j'ai fait un test de configuration et voici ce que j'ai:

sanstitre1copie7ut.jpg


et la ligne 173 est la suivante:

Code:
LoadModule php4_module "c:/webdev/php4/sapi/php4apache2.dll"

Comment modifier cela ?
 
WRInaute impliqué
Essai de déplacer le contenu du rep "sapi" dans le rep "php4", il se peut que ce soit l'arborescence d'une dépendance qui pose problème, en mettant tout dans le même rep tu vires ce problème.
 
Nouveau WRInaute
OUla, un gros problême incompréhensible !

Maintenant le HTML marche sous IE mais ne marche pas sou FF, et le PHP marche sur aucun des deux:
- sur FF sa affiche le code
- sur IE sa affiche tout blanc

Comment réglé ce problême très embêtant...

Help plz... :cry:
 
Nouveau WRInaute
c bon !! g réussi !!!

mais par ontre quand je veut me connecter à mysql sa me met l'erreur:

Code:
#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

c'est une erreur qu'il ma mi pour mon sité déjà, j'avais mis:

Code:
$db_link = mysql_connect("$serveur", "$login", "$pwd");

et j'ai remplacé par sa et sa a marché nikel:

Code:
$db_link = @mysql_connect("$serveur", "$login", "$pwd");

Que faire ? peux-tu m'aider stp ?
 
WRInaute impliqué
Bourriquet a dit:
Si c'est bien compilé, le panel de fonction mysql sera réactivé, ce qui sera le premier pas vers un bon fonctionnement.

Par contre, il te faudra faire encore de la config pour passer l'authentification mysql.

En effet, le chiffrement de l'authentification a été modifié à partir de mysql 4.1, et c'est pour cela que la nouvelle bibliothèque mysqli a été crée.

Je reste persuadé qu'il serait plus judicieux d'utiliser mysqli, c'est beaucoup moins compliqué à mon sens d'adapter son code, plutôt que de recompiler l'interprêteur, puis faire de la bidouille pour passer l'authentification. Enfin, cela n'engage que moi ;)

Ton message d'erreur c'est exactement ça que je désignais par
Bourriquet a dit:
En effet, le chiffrement de l'authentification a été modifié à partir de mysql 4.1, et c'est pour cela que la nouvelle bibliothèque mysqli a été crée.

Il faut que tu passes l'authentification. Pour cela, tu as plusieurs solutions :
- aller via phpmyadmin par exemple, en root dans la base 'mysql', la table users, et remettre le mot de passe de l'utilisateur en clair et sélectionner sur la liste déroulante à gauche du champ password "OLD_PASSWORD" .

Cela enregistrera ton mot de passe à l'ancien format de mysql

- désactiver l'authenfication par mot de passe (déconseillé) :
Tu relances mysql avec l'option --skip-grant si je me rappelle bien

- trouver une dll "libmysql.dll" qui intègre les fonctions "mysql", mais qui supporte le nouveau chiffrement des mots de passes.

La première solution me semble la plus facilement réalisable.
 
WRInaute impliqué
Redémarre mysql avec l'option --skip-grant-tables .

Ensuite, tu pourras te connecter à mysql via phpmyadmin, fait la manip, et ensuite, redémarre ton serveur mysql normalement, ça devrait passer.
 
Nouveau WRInaute
il est toujours lancé lol, moi je peut y accéder dès que je lance apache.

si tu as msn, tu pourrais m'aider par msn je t'embêterai moin longtemps ? et je comprendrais mieux non ?
 
WRInaute impliqué
Pas MSN à dispo sur ce poste, je suis encore au taff :$

Je suis pas spécialiste Windows, mais je pense que tu devrais essayer ça :

Démarrer > Panneau de configuration > Outils d'administration > Services

Là, tu cherchers le service MySQL. Tu regardes les propriétées, normalement tu dois avoir le chemin vers l'exécutable, ainsi que des options.

Tu stoppes le service.

Puis tu ouvres une console, via Démarer > Executer > cmd + enter .

Là tu reprends l'exécutable complet, si je ne m'abuses ça doit être c:\program files\mysql\mysqld-nt

Ou quelque chose comme ça.

Derrière l'exécutable, tu tapes --skip-grant-tables, puis entrer

Tu laisses la console ouverte, et tu ouvres ton navigateur internet, là tu tapes l'url de ton phpMyadmin.

Tu fais la manip, puis une fois effectuée, tu ferme appuie sur ctrl +c dans la console si le programme est toujours en exécution (normalement non, car mysql utilise plusieurs thread, un serveur de lancement qui lance un thread serveur), ou sinon tu te contente simplement de fermer la fenetre console.

Puis tu retournes dans les services, et là tu redémarres MySQL.

Normalement ça devrait fonctionner.
 
Nouveau WRInaute
j'ai réussi mais doit-il y avoir un message de confirmation ?

J'ai tapé:

1) c:\webdev\mysql4.1\bin\mysqld-nt --skip-grant-tables
2) ENTRER

Rien ne s'est passé et la même erreur reste " #2003 - Le serveur ne répond pas. " car j'ia bien sur avant arreter mysql.

En faite sa ne démarre pas le serveur avec ce mode, sa le laisse fermé...

que faire ?
 
Discussions similaires
Haut