[résolu] problème de connexion à un serveur MySQL en php

Petit nouveau ! | 3 Messages

20 oct. 2011, 01:55

Bonjour,
Et d'avance merci pour votre aide. je crois que mon problème est tellement bête qu'il n'est pas documenté.:roll:

J'utilise ce code php pour me connecter à une base MySQL:

Code : Tout sélectionner

<?php mysql_connect('192.168.1.6','pureftpd','pureftpd'); ?>
retour:

Code : Tout sélectionner

Warning: mysql_connect() [function.mysql-connect]: [2002] Aucune connexion n’a pu être établie car l’ordinateur cible l’a (trying to connect via tcp://192.168.1.6:3306) in C:\wamp\www\testmysql.php on line 2 <un tableau, puis à nouveau:> Warning: mysql_connect() [function.mysql-connect]: Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée. in C:\wamp\www\testmysql.php on line 2
Quelques précisions:
  • La base est bien sur 192.168.1.6, l'utilisateur 'pureftpd' existe bien, bon mot de passe, bons privilèges, je n'ai pas touché aux ports.
  • J'arrive à me connecter avec PhpMyAdmin en utilisant ces paramètres.
Une chtite idée ?

Edit:
le code:

Code : Tout sélectionner

<? $sqldata= mysql_connect('192.168.1.6','pureftpd','pureftpd'); ?>
renvoie la même erreur.:?
Modifié en dernier par petit chat le 20 oct. 2011, 23:27, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 oct. 2011, 08:33

Salut,

Le pma il est sur la machine ou se trouve le serveur mysql ?

Ton script et le serveur mysql ne sont pas sur la même machine on est d'accord ?

Dans ce cas (si mes deux suppositions sont bonnes) il s'agit d'un problème de conf de l'utilisateur (par défaut tu ne peu Utiliser qu'une connexion local)
Sinon pb de firewall ?

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

20 oct. 2011, 13:30

Salut moogli, merci de me répondre.
Le pma il est sur la machine ou se trouve le serveur mysql ?
Je vais de ce pas regarder ce qu'est ce pma dont tu parle !
Ton script et le serveur mysql ne sont pas sur la même machine on est d'accord ?
Au moment où j'ai posté, c'était le cas, oui. Entre temps, en local, j'ai testé (mysql est installé sur ma machine):

Code : Tout sélectionner

<?php mysql_connect('127.0.0.1','root','rootpasswd'); ?>
et j'ai eu la même erreur. On peut éliminer le problème de firewall.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 oct. 2011, 14:14

pma = PhpMyAdmin :mrgreen:
Au moment où j'ai posté, c'était le cas, oui. Entre temps, en local, j'ai testé (mysql est installé sur ma machine):Tout sélectionner <?phpmysql_connect('127.0.0.1','root','rootpasswd');?>et j'ai eu la même erreur. On peut éliminer le problème de firewall.
en fait non ça peu dépendre de la conf j'me demande si mysql ne tiens pas compte du host, a tu essayé sur ta machine en mettant localhost plutôt que 127.0.0.1 ? si cela fonctionne ça viens donc d'un problème de conf de mysql.

sinon un firewall peu très bien bloquer en local ce n'est pas un problème :mrgreen:

ça doit être un truc du genre.

si tu veux mettre php hors de cause utilise ton client mysql de ton php pour te connecter sur l'autre serveur (tu va, en console, dans le répertoire d'installation de mysql et tu tape mysql -h 192.168.1.6' -u pureftp -p
et tu vois ce que ça donne :)

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

20 oct. 2011, 23:12

Salut
désolé moogli de répondre tard mais je cherchais et non en vain puisque le problème est résolu. Comme je le soupçonnais, c'était assez bête. :P
Des tutoriels existent sur le net sur comment configurer un accès distant à un serveur MySQL. Par défaut on ne peut pas, il faut l'autoriser. Il faut procéder en deux temps:
  • 1- D'abord, sur le serveur, il faut configurer (je suis sous debian) /etc/mysql/my.cnf: commenter la ligne "bind addres = 127.0.0.1" et une ligne "skip-networking" ou "skip-external-locking".(bien sûr sauver et redémarrer mysql par un /etc/init.d/mysql restart)

    2- Faire en sorte qu'il y ait (en le créant ou en modifiant un utilisateur existant), sur le serveur MySQL, un utilisateur ayant les droits sur les bases et, surtout, le champs "server" compléter par l'adresse IP de la machine avec laquelle on va se connecter.
Maintenant mon script marchent nickle, ou plutôt mes scripts car en cherchant, le script initial s'est multiplié comme par mitose! \:D/

moogli merci pour ton aide précieuse. =D>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 oct. 2011, 09:33

désolé moogli de répondre tard
bof perso j'étais couché :)

si non oui par défaut mysql ne permet pas l'accès extérieur, il y a moyen de filtrer les adresses qui permettent la connexion.

Et il faut faire de même pour les utilisateurs effectivement :)

amuse toi bien :)

@+
Il en faut peu pour être heureux ......