Base local mysql vers serveur web avec le php

Fermé
dwarfelvish Messages postés 9 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 22 mars 2004 - 23 juil. 2003 à 11:11
 Parck - 19 mars 2011 à 01:25
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
A voir également:

10 réponses

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 :)
3
dwarfelvish Messages postés 9 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 22 mars 2004
25 juil. 2003 à 09:07
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
0
Utilisateur anonyme
25 juil. 2003 à 10:22
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
0
dwarfelvish Messages postés 9 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 22 mars 2004 > Utilisateur anonyme
25 juil. 2003 à 10:42
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
@@@++
0
Utilisateur anonyme > Utilisateur anonyme
25 juil. 2003 à 10:58
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
0
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
3
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
0
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 :)
0
dwarfelvish Messages postés 9 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 22 mars 2004
25 juil. 2003 à 11:44
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tu remplaces localhost par l'ip de ta machine locale.
0
dwarfelvish Messages postés 9 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 22 mars 2004
25 juil. 2003 à 16:43
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
0
Utilisateur anonyme
25 juil. 2003 à 16:51
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
0
Utilisateur anonyme
25 juil. 2003 à 16:52
J'ai 5 minutes pour faire des essais, si ca marche pas, je réessaierai demain.

Kalamit,
o(^_^)o
0
Utilisateur anonyme
25 juil. 2003 à 16:55
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
0
dwarfelvish Messages postés 9 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 22 mars 2004
25 juil. 2003 à 17:41
ç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
0
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.
0
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","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
0
obaam Messages postés 10 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 2 septembre 2008
26 août 2008 à 14:19
slt xoflam pour le premier il faut mettre à la place de l'hote localhost/127.0.0.1 car tu est en local et tu utilise l'utilisateur root qui est un user de mysql
0
obaam Messages postés 10 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 2 septembre 2008
26 août 2008 à 16:29
salut xoflam ignore le premier msg
voici le bon
une fois que tu as commenter le bind-adresse=127.0.0.1 et redemarrer le mysql
il faut te rendre dans le fichier de configuration de php ( \phpmyadmin\config.inc.php)

1. $cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
2. $cfg['Servers'][$i]['user'] = 'root'; // MySQL user
3. $cfg['Servers'][$i]['password'] = '';

tu modifies les lignes 2 et 3 comme suite
tu remplace root par ton login et tu met un passeword à la place de '' en suit tu redemarre easyphp
et tu ouvre mysql en mode console et tu tape la commande suivante

GRANT ALL PRIVILEGES ON *.* to 'ton_user'@'%' IDENTIFIED BY'pwd';

// le % veut dire ni'mporte kel poste. Tu peux specifier en donnant l'ip à partir du kel il est autoriser à se connecter

avec ça ton user pourra se connceter sans pb.
0
power11 Messages postés 19 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 29 mai 2008
22 mai 2008 à 17:33
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
0
obaam Messages postés 10 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 2 septembre 2008
26 août 2008 à 15:52
il faut utiliser la fonction mail en php dont la syntaxe est :
mail($destinataire,$objet,$message);
dont:
$destinataire= l'adresse email du destinataire
$objet = l'objet du message
$message =message à envoyer.
0
Bonjour,
J'ai installé EasyPHP sur mon oridnateur, mais mes requêtes veulent pas s'éxecuter on m affiche un message d 'erreur :


Warning: mysql_connect(): Unknown MySQL Server Host 'root' (11004) in c:\program files\easyphp1-8\www\site\debut.php on line 17
Erreur de connexion à la base

Je ne sais pas par quoi remplacer "localhost".

AIDEZ SVP.
Merci.
0
angecorse77 Messages postés 4 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 16 décembre 2010 3
11 déc. 2010 à 02:26
Bonjour,

J'ai tout sur easyphp en local (site joomla:apache/mes tables et bases:mysql). J'aimerais les exporter sur un serveur web (hébergeur OVH). J'ai créé ma base du même nom nommé dans joomla, j'ai déjà envoyé le site définitif via un client ftp (ftpexpert) vers l'hébergeur mais sans les bases liées rien ne fonctionne, normal ;)
J'aimerais exporter (du local) et importer (web) toutes mes bases (toutes les 2 paramétrées en uft8_ci_générale) et que les liens s'effectuent mais ça clache quelque part.

Queme conseillez-vous SVP? Et quel lien d'aide auriez-vous SVP?
Suis pas novice mais pas expert non plus ;)

Merci d'avance.
0
Tu souhaite faire quoi importer ta base mysql sur celle de ton hébergeur? Si c'est bien sa tu export la base de ton site local puis tu m'importe sur celuis de ton hébergeur et n'oublie de changer le paramètre d'identification dans le fichier configuration.php
0