connexion a une base de donnée distante

connexion a une base de donnée distante - PHP - Programmation

Marsh Posté le 09-06-2004 à 15:22:30    

Salut :)
 
  Alors voila en php j'ai cette ligne bien connue: mysql_connect($host,$login,$password).En mettant "localhost","root","" j'arrive a me connecter a ma base de donnée installée sur le pc ou le php est lu. Maintenant, je veux que mon code php lance une connexion sur une base de donnée sur une machine distante dont je connais l'ip. J'ai donc mis comme paramètre : "xxx.xxx.xxx.xxx(adresse de la machine distante)","root","". Mais ca marche pas il veut pas se connecter :(
 
qqn a une suggestion? :)
merci

Reply

Marsh Posté le 09-06-2004 à 15:22:30   

Reply

Marsh Posté le 09-06-2004 à 15:34:32    

ca vient de "root" et "" qui ne sont valables que sur une connexion locale?

Reply

Marsh Posté le 09-06-2004 à 15:39:35    

il peut y avoir plusieurs raisons, j'en vois déjà deux:
- il n'y a pas de compte root sans password pour les connexions à distances (sous mysql, tu peux définir des compts "locaux" et des comptes distants, vérifie que tu aies bien un compte distant ;) )
- ton hébergeur n'autorise pas les connexions ailleurs que chez lui (dans le cas où ce n'est pas toi l'hébergeur, bien sûr)
 
edit: ceci dit, root sans mot de passe c'est mal, surtout pour les comptes distants :o


Message édité par dropsy le 09-06-2004 à 15:40:15
Reply

Marsh Posté le 09-06-2004 à 15:41:49    

c moi l'hebergeur (c mes deux pc)
je vais voir comment faire pour définir des comptes distants...
 
Edit: bah le probleme c'est que j'ai juste installé le serveur sql, et on ma dit ke par défaut pour se conneceter il faut mettre "root" sans pass, la je cherche ou on peut creer d'autres comptes...


Message édité par cymp le 09-06-2004 à 15:42:57
Reply

Marsh Posté le 09-06-2004 à 16:41:51    

Il faut absolument que tu crée des comptes distants pour accéder à ta base Sql.  
 
Fait attention aussi si tu as un firewall, il faut que tu débloque le port que tu vas utiliser pour communiquer avec le serveur.

Reply

Marsh Posté le 09-06-2004 à 16:56:07    

bon j'ai trouvé comment créer des comptes distants, apparemment il faut mettre dans la base de données mysql, table user, en dessous de la ligne "localhost" "root" "" la ligne suivante : "%" "toto" "". De ce que j'ai vu sur google, % autorise une connexion depuis nimporte quel ordinateur distant. Mais ca marche toujours pas il me dit qu'il peut pas se connecter... :(

Reply

Marsh Posté le 10-06-2004 à 00:27:56    

qui peut m'aider a créer un compte distant svp? :( marche po...

Reply

Marsh Posté le 10-06-2004 à 00:29:19    

il n'y a pas une commande spécifique dans mysql pour créer des user?
 
edit: http://dev.mysql.com/doc/mysql/fr/Adding_users.html
cf commande grant ;)


Message édité par dropsy le 10-06-2004 à 00:31:05
Reply

Marsh Posté le 11-06-2004 à 00:31:02    

ok bon j'ai suivi les instructions a cette page, et j'ai fait ca:
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
    ->     IDENTIFIED BY 'un_mot_de_passe' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
    ->     IDENTIFIED BY 'un_mot_de_passe' WITH GRANT OPTION;
 
Ensuite, j'ai fait un flush privileges, mais pourtant je n'arrive toujours pas à acceder a la base de données distante :(
any idea? au secours :( :(
 
EDIT: bien sur g pas mis 'un_mot_de_passe' mais j'ai laissé le nom monty, et j'ai fait dans mon php: mysql_connect(xxx.xxx.xxx.xxx,"monty","lepass" )
 
EDIT2:Je n'ai pas de firewall
 
EDIT3:voila le message d'erreur:
Warning: mysql_connect(): Can't connect to MySQL server on '80.119.8.78' (10061) in c:\program files\easyphp1-7\www\projet\recherche2.php on line 9


Message édité par cymp le 11-06-2004 à 00:58:21
Reply

Marsh Posté le 11-06-2004 à 02:54:16    

up :(

Reply

Marsh Posté le 11-06-2004 à 02:54:16   

Reply

Marsh Posté le 11-06-2004 à 03:27:09    

Et depuis la console de ton PC tu peux te connecter au serveur distant ?

Reply

Marsh Posté le 11-06-2004 à 04:04:39    

comment on fait ?

Reply

Marsh Posté le 11-06-2004 à 17:21:30    

Menu démarrer > executer > cmd
 
Puis tu te rends dans le répertoire bin du dossier d'installation de mysql (vu que tu utilises easyphp, on va supposer que tu as un client d'installé :D) et tu tapes

Code :
  1. mysql -h ip_du_serveur -u monty -p


puis ton mot de passe.
 
Fait le test depuis une machine distante et depuis la machine qui héberge le serveur, pour t'assurer que le couple user/pass est valide :)
 
PS : effacer l'ip dans le code du mysql_connect était pas mal, la laisser dans le message d'erreur était plus drôle :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed