rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut :

Base local mysql vers serveur web avec le php

Posté par dwarfelvish, le mercredi 23 juillet 2003 à 11:11:00
bonjour je voudrais savoir si il est possible de transférere avec une page en php les données d'une base mysql situé sur le serveur de l'hebergeur vers une base mysql situé en local sur un poste situé au sein d'un reseau qui possède internet grace a un router adsl.
ou sinon sur un poste en local connecté directement a internet
??
c'est tres urgent
merci pour vos reponses et aides futures
Répondre à dwarfelvish  Signaler ce message aux modérateurs Aller au dernier message

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludd, le mercredi 23 juillet 2003 à 12:17:17
les possibilitées dépendent de plusieurs choses.

Si ta bdd est importante, tu risques de planter car ça dépassera les 30s d'exécution de ton script.
Un script php ne peut excéder 30s d'éxécution.

Le deuxième soucis est du côté local. Par défaut les bdd sont accessible uniquement en local. c'est à dire avec un script déposé sur la même machine que le serveur bdd.
A toi d'autoriser un client extérieur à accéder à la bdd sur ta machine locale.

Sinon ya pas de soucis ce jouable.
Si c'est juste pour transférer une bdd, il vaut peut être mieux exporter les tables via PhpMyAdmin et les importer ensuite en local.

bon courage :)
Répondre à ludd

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dwarfelvish, le vendredi 25 juillet 2003 à 09:07:42
ok merci
en fait je peux pas passer par phpmyadmin comme dab car la c'est pour un client de mon patron et le gars ne sait pas ce servir donc pour lui il lui faut juste une page php avec un bouton pour passer les infos de 2 tables de la base sur l'hebergeur vers les 2 tables en local . j'ai bien compris ce que tu as dis mais je ne sais pas faire
comment autoriser un client exterrieur a ce connecté sur ma base local je vois pas comment faire
c'est dans la config apache ?
pourrais tu me donner les instructions necessaires a cette conexion
merci
Répondre à dwarfelvish

6


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
kalamit, le vendredi 25 juillet 2003 à 10:22:39
Bonjour,
Tu sais te connecter à une base MySql ou pas ?

<?php

//code à executer deux fois en changeant les parametres.
//$host: ip de la machine sur laquelle est installée la base.

$host = "192.168.1.6";
$user = "user";
$bdd = "base";
$password = "passwd";

mysql_connect($host, $user,$password) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
?>



En fait, il te faudra faire deux connexions. Une pour récuperer les données sur ta base dite locale (faudra qd meme etre sur le net, si tu veux que ca fonctione) et une connexion pour la base chez l'hebergeur.


Kalamit,
o(^_^)o
Répondre à kalamit

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dwarfelvish, le vendredi 25 juillet 2003 à 10:42:47
salut kalamit
ça ça ne marche pas car je t'explique
l'adresse ip que tu me met c'est une ip local
moi je suis sur un hebergeur (levillage.org)
ma page de connexion a la base dessus
est donc comme il le faut
host = "localhost"

et a partir de cette page faire une deuxieme connexion mais cette fois a un pc distant ou serais installé easy php et qui contiendrais la base dite 'local'
comprends tu ?
en plus j'ai essayé de remplacer localhost dans la deuxieme connexion par l'ip de mon poste 81.**.**.**
et en lancant le site sur levillage il m'a dit impossible de se connecter
en gros il se connecte a la base sur levillage mais derriere pas a celle sur mon pc
@@@++
Répondre à dwarfelvish

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kalamit, le vendredi 25 juillet 2003 à 10:58:13
L'ip locale, c'etait pour l'exemple... :)

Ah bah ouais, la, t'es grillé... Normal que le-village veuille pas que tu te connectes sur une base qu'il ne maitrise pas ! C'est pareil chez Free (et Multimania, j'en parle meme pas...). C'est une config dans le php.ini, je crois, mais comme tu n'as pas accès à ce genre de fichier, c'est pas la peine de chercher plus loin !

Chez un hebergeur payant, tu devrais avoir moins de soucis...

Kalamit,
o(^_^)o
Répondre à kalamit

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludd, le vendredi 25 juillet 2003 à 09:57:41
Se serait plus au niveau de mysql que de apache. En tête comme ça je me rapelle plus, je v regarder et je te dis ça dès que je trouve
Répondre à ludd

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
guyom, le vendredi 25 juillet 2003 à 10:14:02
salut,
pour la limite de temps d'exécution des script y'a une solution ici ; peut etre que ça t'seras utilie... a+
http://php.developpez.com/faq/?page=configuration
Répondre à guyom

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludd, le vendredi 25 juillet 2003 à 11:26:49
Ton script devra obligatoirement être exécuté sur le serveur le village... pour une question de droits.

Du coté de ta machine locale, une fois que tu as installé easyphp, il faut que tu crée un utilisateur avec les droits d'acces depuis l'extérieur. Par defaut mysql ne crée pas de compte utilisateur, tu peux juste accéder a la bdd via 'lovalhost'

Pour créer un compte utilisateur, utilise la commande Grant. Si tu connais pas cette commande tu as des explications à cette adresse : http://dev.nexen.net/docs/mysql/annotee/grant.php

Pour la limite des 30s, sur village.. je ne pense pas que tu puisses modifier la config de apache.
Dans ce cas tu as une autre solution, pas des plus simple mais qui peux fontionner.

Sur village : enregistre l'ensemble des tes données sous forme de requette sql dans un fichier temporaire.
Une fois dans le fichier, dépose ce fichier sur ton serveur local.
Du côté local fais toi un ptit script en php qui ira lire ce fichier et injectera les données en bdd.

Si tu dois faire ce genre de manip régulièrement, il serait bien de convaincre le client de te laisser accéder à un phpmyadmin, c'est quand même plus simple :)
Répondre à ludd

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dwarfelvish, le vendredi 25 juillet 2003 à 11:44:40
une fois le compte utilisateur crée comment a partir de la base sur l'hebergeur, je me connecte a la base sur mon poste
je peux pa utiliser host=localhost car ça c deja pris par levillage ?
Répondre à dwarfelvish

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludd, le vendredi 25 juillet 2003 à 12:16:18
Tu remplaces localhost par l'ip de ta machine locale.
Répondre à ludd

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dwarfelvish, le vendredi 25 juillet 2003 à 16:43:13
re
bon j'ai fais pleins de test cette apres j'y arrive pas
j'explique
ce que tu m'a dis de faire c'est par rapport a un poste chez moi connecté a internet et par rapport au serveur de mon hebergeur
ça je suis pas chez moi je le test ce soir
pour essayer j'ai fais ça avec le reseau local de ma boite
c'est a dire entre deux postes
le premier 192.168.1.11
le deuxieme 192.168.1.41
alors easyphp est sur les deux
donc deux serveurs, ils tournent en mem temps
alors sur la premiere page de mon serveur a moi le premier poste
je me connecte a ma base sur mon poste
et je voulais donc pour faire le test me connecté a la base de mon collegue le deuxieme poste
alors la page de connection est
// base de mon poste
$host = "localhost";
$user = "root";
$pass = "";
$bdd = "foot";
$conect = @mysql_connect($host,$user,$pass)
or die("Impossible de se connecter" . mysql_error());
@mysql_select_db("$bdd",$conect)
or die("Impossible de se connecter" . mysql_error());

// base du poste a mon collegue
$host2 = "192.168.1.41";
$user2 = "root";
$pass2 = "";
$bdd2 = "foot";

$conect2 = @mysql_connect($host2,$user2,$pass2)
or die("Impossible de se connecter" . mysql_error());
@mysql_select_db("$bdd2",$conect2)
or die("Impossible de se connecter" . mysql_error());


et la quand je lance la page sur mon web local
il me dit qu'il ne peut pas se connecté a la base sur le poste du collegue
alors si ça ça marche pas comment je vais faire pour le faire par internet avec levillage :-)
je sais que j'ai fais une betise mais je vois pas laquelle
aidez moi svp

ps : ludd pour créer des utilisateurs on est pas obligé de passer par grant on peut utiliser phpmyadmin(pour les test je parle)
et aussi donne moi les parametres que je dois mettre
a savoir
host = ''
user =''
pass =''
parceque je vois pas quoi mettre dans host
j'ai essayé pleins de truc de localhost a mon ip local en passant par l'ip du poste du collegue rien ne marche
ausecours !!!!!!!!!
merci a tous pour votre aide actuelle et future
julien
Répondre à dwarfelvish

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kalamit, le vendredi 25 juillet 2003 à 16:51:24
Salut,
Crée un user MySql dans phpmyadmin !
Cree une entré dans la base Mysql dans la tables users. Attention, le mot de passe doit etre crypter avec PASSWORD( ).
Dans le $host, il faut effectivement que tu mettes l'IP de la machine.

As tu pensé à fermer tes connexion à la fin de la page ? Je ne crois pas à deux connexions simultanées sur deux bases.

Kalamit,
o(^_^)o
Répondre à kalamit

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kalamit, le vendredi 25 juillet 2003 à 16:52:23
J'ai 5 minutes pour faire des essais, si ca marche pas, je réessaierai demain.

Kalamit,
o(^_^)o
Répondre à kalamit

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kalamit, le vendredi 25 juillet 2003 à 16:55:02
Chez moi, ca fonctionne... La seule difference, c'est que j'ai mis un mot de passe à root. Mais sinon, j'arrive à executer des requetes sur un serveur mysql distant.

Kalamit,
o(^_^)o
Répondre à kalamit


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dwarfelvish, le vendredi 25 juillet 2003 à 17:41:06
ça marche pas pour moi
je comprends plus rien
si qqun pouvais me donner la syntaxe exact car la je nage
ça doit surement etre une betise mais bon !
sinon j'ai un pb quand je met un mot de passe a 'root'
ça me flingue tout
j'ai pu access au base avec phpmyadmin et je peux plus rien en tirer
obligé de reinstallé mysql
@@@++ les gens
Répondre à dwarfelvish

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludd, le mardi 29 juillet 2003 à 09:58:19
host = '' / user ='' / pass =''
Ces params là te permette pas de créer un utilisateur, c'est juste une config pour accéder à un serveur mysql via PhpMyAdmin.

Je crois que tu confonds PhpMyAdmin et mysql. Le premier est un client php pour accéder à un serveur mysql, le deuxième est le serveur mysql.

// base du poste a mon collegue
$host2 = "192.168.1.41";
$user2 = "root";
$pass2 = "";
$bdd2 = "foot";


Pour ton deuxième poste, root c'est pas bon il est autorisé que sur la machine locale. Il faut créer un autre user qui lui sera autorisé sur tout serveur et sur toute bdd( c plus simple ). Tu peux aussi modifier le compte root mais je te le conseille pas, si plantage c'est réinstall du serveur.

// base du poste a mon collegue
$host2 = "192.168.1.41";
$user2 = "toto";
$pass2 = "toto";
$bdd2 = "foot";


Pour créer un user :
voila la requette pour créer un user toto, pass=toto sur tout serveur.

INSERT INTO mysql.user SET Host = '%', User = 'toto', Password = PASSWORD('toto'), Select_priv = 'Y', Insert_priv = 'Y', Update_priv = 'Y', Delete_priv = 'Y', Create_priv = 'Y', Drop_priv = 'Y', Reload_priv = 'Y', Shutdown_priv = 'Y', Process_priv = 'Y', File_priv = 'Y', Grant_priv = 'Y', References_priv = 'Y', Index_priv = 'Y', Alter_priv = 'Y'


Une fois exécutée, il faut que tu recharges mysql:

Ensuite il faut que tu déclares les droits pour ce user :
la requette :

GRANT Select, Insert, Update, Delete, Create, Drop, Reload, Shutdown, Process, File, References, Index, Alter ON `toto%`.* TO 'toto'@'%' WITH GRANT OPTION


Recharge mysql et a priori c'est bon

Dans ce mode la, le premier post (192.168.1.11) correspond à village.., le deuxième (192.168.1.41) à ton post distant.
Quand tu feras la manip en situation réelle, penses bien au fait que tout se paramètre sur ton post locale car sur village tu as déjà les droits puisque ton script sera exécuter sur ce serveur.

Bon courage :)
PS : J'ai fais la manip ce WE et pas eu de soucis particulier :) il faut juste penser à recharger mysql sinon ton user est considéré inconnu.
Répondre à ludd

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
xoflam, le mercredi 20 février 2008 à 09:05:32
Bonjour,
Donc moi j'ai exactement le même problème : je suis en local avec 2 pc qui ont chacun un serveur easyphp.
Je desire avec l'hôte 1 accéder à ma base de l'hôte 2 .
Pour cela avec l'hôte 1 je passe par une petite interface en passant par le navigateur (127.0.0.1) .
J'arrive sur une page qui me demande de rentrer une information : cette information j'essaye de l'envoyer directement via le réseau, vers ma base de donnée situé sur mon hôte 2 .
* hôte 1 : ip : 192.168.1.101
* hôte 2 : ip : 192.168.1.110
* base de l'hôte 2 ou je désire insérer des informations : testbdserveur

Dans phpmyadmin de la base de l'hôte 2(celle ou je désire insérer des informations depuis l'hôte 1), j'ai crée un autre utilisateur (login:xoflam et mdp:malfox) et j'ai également mis un mot de passe à l'utilisateur root (mdp:root)

J'ai également décommenter la ligne de configuration de mysql : #bind-address:127.0.0.1

Dans mon script php (se situant sur la base de l'hôte 1 )
J'essaye de me connecter à ma base de l'hôte 2 avec les 2 utilisateurs :
1)
$cnx=mysql_connect("192.168.1.110","root"­;,"root")or die("connexion impossible");
mysql_select_db("testbdserveur",$cnx)or die("base non trouvée");
$req="INSERT INTO ri(id)
VALUES('$_POST[numri]')";
mysql_query($req)or die("erreur sur la requete");
echo"rapport enregistré";
mysql_close($cnx);

Lorsque j'execute j'ai le message suivant :

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in c:\documents and settings\florimond\mes documents\cours\easyphp1-8\www\local\miseajour.php on line 14
connexion impossible

2)
$cnx=mysql_connect("192.168.1.110","xoflam&qu­ot;,"malfox")or die("connexion impossible");
mysql_select_db("testbdserveur",$cnx)or die("base non trouvée");
$req="INSERT INTO ri(id)
VALUES('$_POST[numri]')";
mysql_query($req)or die("erreur sur la requete");
echo"rapport enregistré";
mysql_close($cnx);

message obteu :

Warning: mysql_connect(): Accès refusé pour l'utilisateur: 'xoflam'@'@XOFLAM' (mot de passe: OUI) in c:\documents and settings\florimond\mes documents\cours\easyphp1-8\www\local\miseajour.php on line 14
connexion impossible

Il faut savoir que j'ai pourtant autoriser l'utilisateur 'xoflam' a avoir tous les privileges !!!
Quel est le problème de cette situation ? je n'arrive pas à trouver la solution !!!
Merci
Répondre à xoflam

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 power11, le jeudi 22 mai 2008 à 17:33:54
bonjour je voudrais savoir comment arriver a envoyer des mails aux utilisateurs pour leurs confirmer leurs inscriptions sur mon site jutilise la base de donné mysql merci et je suis à l'ecoute
Répondre à power11
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger MySQL 5.0.51bMySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. Catégorie: Bases de données
Licence: Open Source
Télécharger HFS (Http File Server)  2.2dHFS (Http File Server) - HFS est une manière ultra-simple de partager des fichiers avec des amis. Lancez HFS Glissez un dossier à partager...Catégorie: Serveurs
Licence: Open Source
Télécharger easyPHP 2.0b1easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données...Catégorie: Serveurs
Licence: Open Source
Plus de logiciels gratuits sur « base local mysql vers serveur web avec le php »