begin process at 2012 02 13 21:39:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Connexion Mysql Externe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Connexion Mysql Externe

jeudi 14 avril 2005 à 00:37:55 | Connexion Mysql Externe

macsmart

Bonjour,

c'est ma première question alors je vais essayer de pas raconter n'importe quoi, bien que je suis un grand débutant...

J'aimerais savoir si il était possible de se connecter à une table MySQL externe.
Je m'explique:
J'ai un site web hébergé(on va l'appeler A) sur un hébergeur assez sécurisé. D'un autre côté j'ai un pc avec une webcam(B). J'ai installé un petit serveur dessus. Sur se même pc j'aimerais afficher un autre site web qui fonctionnerait comme une borne.
Et j'aimerais qu'il (B) se connecte à la même base que A.

Pourquoi faire ça me dirais vous?
Et bien parce que la webcam envoye tout les secondes une image dans un fichier sur le serveur de la machine B. Et qu'ensuite cette image par un click s'affiche dans une page web. En même temps j'aimerais qu'elle se sauve sur le serveur du site A mais ce n'est pas possible comme il est trop protégé.
Au final est-il possible de se connecter à une base MySQL sur un autre serveur???

Désolé si je ne suis pas très clair

jeudi 14 avril 2005 à 02:34:26 | Re : Connexion Mysql Externe

sjon

Sael og blesud

Il est tout à fait possible de se connecter à une base de données MySQL distante, vous pourriez faire en sorte de votre site web A se connect à votre serveur de base de données MySQL sur votre serveur B en modifiant la valeur de bind-address qui est égale à 127.0.0.1 par défaut par votre adresse IP dans le fichier my.cnf et en créant un compte utilisateur MySQL comme ceci :

1ier cas :

mysql --user=root mysql
GRANT ALL PRIVILEGES ON *.* TO 'USER'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

ou

mysql_connect('localhost','root','');
mysql_selectdb('mysql');

INSERT INTO user VALUES('%','monty',PASSWORD('PASSWORD'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql_close();

ou encore

2ième cas :

mysql --user=root mysql
GRANT ALL PRIVILEGES ON *.* TO 'USER'@'IP 
DU SERVEUR A' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

ou

mysql_connect('localhost','root','');
mysql_selectdb('mysql');
INSERT INTO user VALUES('IP DU SERVEUR A','monty',PASSWORD('PASSWORD'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql_close();


Dans le premier cas vous autorisez USER à se connecter à votre serveur MySQL de n'importe où sur l'Internet. Dans le deuxième cas vous autorisez USER à se connecter à MySQL depuis l'IP du serveur A uniquement.

Voilà ...

Cependant permettez moi de vous demander pour usez-vous de MySQL pour ce que vous voulez faire ? Ne pouvez vous pas faire d'upload sur le serveur A ? Ou encore pourquoi dans votre site web A ne pas créer un lien vers votre fichier qui lui se trouve sur votre serveur B ? Cela serait, à mon avis, plus simple ...

N'hésiter pas si vous avez des questions ...

Si la réponse vous convient merci de l'accepter

Sigurjon Birgir Sigurdsson aka Sjon

Fra en skal land eyda drengurinn med logum isaprenbokkarinnar.
 

jeudi 14 avril 2005 à 09:58:16 | Re : Connexion Mysql Externe

macsmart

C'est nickel sjon,

j'ai utilisé la 2ème solution et ça marche pas mal, coilà ce que j'ai mis:

$connexion = @mysql_connect("localhost","root","") or die ("ERREUR: impossible de localiser le serveur de base de données");
@mysql_select_db('BASE de DONNEE sur serveur A', $connexion) or die ("ERREUR: Impossible de localiser la base de donnée.");

$sql = "mysql --user=root mysql;";
$sql = "GRANT ALL PRIVILEGES ON *.* TO 'USER'@'ADRESSE ip SERVEUR A' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;";

Problème maintenant j'aimerais écrire sur la base de donnée du serveur A. qu'elles sont les requêtes que je dois faire?

Sinon pourquoi je fais comme ça:
Le serveur B est en faite un pc que je vais transformer en borne (juste bloquer les accès machine) et donc se connectera sur le serveur interne de la machine. De cette manière il sera plus rapide que si toutes les pages sont chargées sur le serveur A. Je peux aussi utiliser des images moins compressé du fait qu'il ne faut pas les télécharger d'internet.
De plus pour envoyer les photos prise par la webcam, il faut que je soit dans une arborescence serveur pour que la requête ftp_connect fonctionne.
Voilà. Si j'ai été clair.
Encore un grand merci. SI tu sais encore un peu m'aider?



jeudi 14 avril 2005 à 10:36:26 | Re : Connexion Mysql Externe

macsmart

Rectification je suis toujours sur la table mysql du pc B.
Où me suis-je trompé?

(j'avais mes 2 tables identiques donc je n'avais pas bien vu...)

jeudi 14 avril 2005 à 13:54:23 | Re : Connexion Mysql Externe

sjon

Sael og blesud

Bon alors on recommence :

Votre erreur est la suivante, vous faites :

$connexion = @mysql_connect("localhost","root","") or die ("ERREUR: impossible de localiser le serveur de base de données");
@mysql_select_db('BASE de DONNEE sur serveur A', $connexion) or die ("ERREUR: Impossible de localiser la base de donnée.");

Ce qu'il y a au dessus c'est du PHP. Ensuite vous faites :

$sql = "mysql --user=root mysql;";
$sql = "GRANT ALL PRIVILEGES ON *.* TO 'USER'@'ADRESSE ip SERVEUR A' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;";

Alors que là c'est un mélange de PHP et de commandes SQL et non pas de requêtes c'est à dire qu'en mode console (donc sans PHP) on attaque directement le serveur MySQL. Explication :

La commande suivante exécutée dans une console :

mysql --user=root mysql

Permet de s'identifier auprès du serveur MySQL afin d'exécuter des commandes SQL.
Puis la commande exécutée dans une console :


GRANT ALL PRIVILEGES ON *.* TO 'USER'@'ADRESSE ip SERVEUR A' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

correspond à la commande SQL de création d'utilisateur MySQL. Mais ce n'est du PHP.

Donc ce que vous auriez dû faire :
Modifier le ficher my.cnf comme expliquer dans mon permier post
Dans une page php vous inscrivez ce code

<--Début du code-->
<?php
mysql_connect('localhost','root','');
mysql_selectdb('mysql');
$requeteSQL="INSERT INTO user VALUES('IP DU SERVEUR A','USER DU SERVEUR A',PASSWORD('PASSWORD DU SERVEUR A'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')";
$resultat=mysql_query($requete)or die('Error '.mysql_error());
mysql_close();
?>
<--Fin du code-->

Puis d'afficher cette page dans votre navigateur préféré.

Ce qui vous permetterait de faire à partir du serveur A une requete PHP :

mysql_connect('IP DU SERVEUR B','USER DU SERVEUR A','PASSWORD DU SERVEUR A');
... etc ...
 
Concernant votre envie d'écrire dans votre base de données du serveur A, cela me semble plus délicat si vous n'en êtes pas propriétaire. Car le mieux aurait été de procéder de la même façon mais je ne pense pas que vous ayez un accès à la base "mysql".

Mais ce n'est pas impossible, par exemple :

Sur le serveur A vous créez une page nommé getdata.php avec le code suivant :

<--Début du code-->
<?php
$requete=stripslashes(htmlentities($_POST['requete']));
mysql_connect('localhost','user','password');
mysql_selectdb('test');
mysql_query($requete);
?>

<--Fin du code-->

Puis sur votre serveur B vous créez une page senddata.php avec le code suivant :

<--Début du code-->
<?php
$requete="INSERT INTO test VALUES ('value1','value2')";
echo ('
<form name="senddata" action="http://SERVEUR A/getdata.php" method="POST">
<input type="text" name="requete" value="'.$requete.'" />
</form>
<script>document.senddata.submit();</script>
');
?>

<--Fin du code-->

Ce n'est qu'un exemple à
vous d'adapter en fonction de vos besoins ... Par ailleurs si vous travaillez en php5 vous pouvez faire beaucoup mieux avec les public class ou autres choses du même genre ;-)

N'hésiter pas si vous avez des questions ...

Si la réponse vous convient merci de l'accepter

Sigurjon Birgir Sigurdsson aka Sjon

Fra en skal land eyda drengurinn med logum isaprenbokkarinnar.

 

jeudi 14 avril 2005 à 19:21:00 | Re : Connexion Mysql Externe

macsmart

Réponse acceptée !
Merci beaucoup je vais essayer ça! Sinon je trouverais une autre solution

Encore Merci
lundi 26 décembre 2005 à 13:23:02 | Re : Connexion Mysql Externe

Ramdn


salut,
jai un probleme pour la connexion, elle marche bien en local mais des erreur s'apparaissent quand j'essaye de connecter ma base a distance.
peut etre qu'il faut d'autre parametres pour une base distante???
pour designer ma base distante j'utilise son URL est ce que ca marche?

merci de m'aider.

ramdn001@hotmail.com
.RAMDN



Cette discussion est classée dans : site, possible, mysql, serveur, externe


Répondre à ce message

Sujets en rapport avec ce message

installation d'un site sur un serveur linux [ par aphikit ] j'ai réalisé un annuaire en php avec la base de donnée Mysql, pour un intranet et j'aurais aimé le mettre à disposition de tous.Mais je débute en info J'ai un prob avec le serveur [ par kajoul ] Salut, j'ai un big prob.J'ai commence a concevoir un site avec l'ASP, apres j'ai decouvert que le serveur ou va le site etre heberge est un serveur AP passage par valeur sur un autre serveur [ par eax ] salutje voudrais savoir si il est possible de passer une chaine de caractère de longueur indéterminée d'un serveur à un autre.j'aimerais si possible n postgresl --> mysql [ par NDK ] Bonjour, Je dois reprendre un site qui a été réalisé en php avec une bdd en Postgresql, et j'aimerais convertire le code pour qu il travaille avec une Dreamweawer et PHP MySQL sur free [ par RVP54 ] Bonjour,Je viens d'intaller correctement le forum sur FREE avec une base Mysql : Super, ça fonctionne. :lol: Maintenant, j'utilise Dreamweaver MX pour compteur de connecté [ par mdog ] Bonjour,dans le but de réaliser un compteur de conectés pour mon site, quis era un site de jeux dans la ligné de "Rise Of Lords" etc..., j'ai besoin d Travail du resultat de la requete sur le client. [ par knet ] Bonjour,Pour être original, je vais vous dire que j ai quelques soucis.Je travaille sur un regroupement de bases de données conséquentes (trois bases/ Upload a partir d'un site ? Possible??? [ par supergrey ] Bonjour, je voudrais savoir s'il est possible d'uploader un fichier a partir d'un site web exmple: http://www.monsite.com/fichier.jpgvers le serveur question en mysql [ par Harpeur ] bonjour,j'ai une question, je suis entrain de faire un site en php avec une base de donné en mysql. dans ce site j'aimerai afficher une photos, l'adre


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,493 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales