Rechercher : dans
Par :

Base local mysql vers serveur web avec le php

Dernière réponse le 16 mai 2009 à 17:20:37 dwarfelvish, le 23 jui 2003 à 11:11:00 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « base local mysql vers serveur web avec le php » dans :
[Web] Un minuscule serveur web sous Windows VoirLe plus petit serveur web sous Windows: 28 ko ! C'est TinyWeb. Malgré sa petite taille, il fonctionne très bien et il est très rapide. Avantages: Pas d'installation nécessaire (un seul fichier) Ultra-compact (59 ko seulement ! Compacté...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
Linux - Administrer les imprimantes via un serveur WEB (CUPS) VoirCUPS (Common Unix Printing System) propose un serveur WEB pour administrer les imprimantes : http://localhost:631/ Ce serveur peut être utile lorsque les outils graphiques proposés par les distributions ne fonctionnent pas.
Installation d'un serveur Web sous Linux (Apache, PHP et MySQL) VoirIntroduction Un serveur web est un logiciel permettant de rendre accessibles à de nombreux ordinateurs (les clients) des pages web stockées sur le disque. Cette fiche pratique explique comment installer le serveur web Apache sur un système de type...
Intranet et Extranet VoirIntranet Un intranet est un ensemble de services internet (par exemple un serveur web) internes à un réseau local, c'est-à-dire accessibles uniquement à partir des postes d'un réseau local, ou bien d'un ensemble de réseaux bien définis, et...

1

ludd, le 23 jui 2003 à 12:17:17
  • +2

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

2

dwarfelvish, le 25 jui 2003 à 09:07:42
  • +1

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

5

kalamit, le 25 jui 2003 à 10:22:39
  • +2

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

6

dwarfelvish, le 25 jui 2003 à 10:42:47
  • +1

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

7

kalamit, le 25 jui 2003 à 10:58:13
  • +1

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

3

ludd, le 25 jui 2003 à 09:57:41
  • +1

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

4

guyom, le 25 jui 2003 à 10:14:02
  • +1

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

8

ludd, le 25 jui 2003 à 11:26:49
  • +1

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

9

dwarfelvish, le 25 jui 2003 à 11:44:40
  • +1

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

10

ludd, le 25 jui 2003 à 12:16:18
  • +1

Tu remplaces localhost par l'ip de ta machine locale.

Répondre à ludd

11

dwarfelvish, le 25 jui 2003 à 16:43:13
  • +1

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

12

kalamit, le 25 jui 2003 à 16:51:24
  • +1

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

13

kalamit, le 25 jui 2003 à 16:52:23
  • +1

J'ai 5 minutes pour faire des essais, si ca marche pas, je réessaierai demain.

Kalamit,
o(^_^)o

Répondre à kalamit

14

kalamit, le 25 jui 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

15

dwarfelvish, le 25 jui 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

ludd, le 29 jui 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

xoflam, le 20 fév 2008 à 09:05:32
  • +1

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

Répondre à xoflam

19

obaam, le 26 aoû 2008 à 14:19:38

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

Répondre à obaam

21

obaam, le 26 aoû 2008 à 16:29:23
  • +1

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.

Répondre à obaam

18

power11, le 22 mai 2008 à 17:33:54
  • +1

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

20

obaam, le 26 aoû 2008 à 15:52:11
  • +1

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.

Répondre à obaam

22

 so_2009, le 16 mai 2009 à 17:20:37

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.

Répondre à so_2009