Aucune erreur mysql...

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.
 
Tiens c'est rigolo, qulqu'un qui se plaint de ne pas avoir de message d'erreur... :)

Bonjour et bienvenue :

essaye d'enlever le @...

;)
 
>> 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 :)
 
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...
 
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 ?
 
Vérifie que ton PHP n'est pas compliqué avec mysqli (nouvelles fonctions correspondant aux versions >= 4.1 de mysql) au lieu de mysql.
 
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.
 
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 " ... ?
 
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.
 
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 ;)
 
et tu n'aurais pas un tutorial pour installer apache, mysql, php et phpmyadmin avec directement mysqli à la place de mysql ?

Merci d'avance.
 
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.
 
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 ?
 
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.
 
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:
 
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 ?
 
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.
 
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.
 
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 ?
 
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.
 
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 ?
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut