{MySQL} acces distant - pb de config
Résolu
alexandre
-
dam75 Messages postés 1063 Date d'inscription Statut Webmaster Dernière intervention -
dam75 Messages postés 1063 Date d'inscription Statut Webmaster Dernière intervention -
Bonjour,
j'ai un serveur A, avec un LAMP
sur ce serveur, une BDD que nous appellerons CLIENTS
je dois proposer à quelqu'un une inscription déportée via une iframe sur un serveur B, de façon à ce que ce formulaire envoie les données dans ma BDD CLIENTS du serveur A
J'ai fait ceci :
j'ai créé un nouvel utilisateur sur le serveur A (avec phpmyadmin) :
INSERT INTO mysql.user
SET Host = '%', User = 'monpote', PASSWORD = PASSWORD( 'lepassword' ) , 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'
Puis je lui ai réduit les droits uniquement en select, update et insert :
GRANT SELECT , INSERT , UPDATE ON `CLIENTS` . * TO 'monpote'@'%';
puis recharge des privilèges :
FLUSH PRIVILEGES ;
sur mon serveur A, j'ai créé un fichier de connexion : connexionmonpote.php
<?php
$serveur = "IP de mon site";
$thelogin = "monpote";
$passwordx = "lepassword";
$mybdd = "CLIENTS";
// ----------------------------
$base = mysql_connect($serveur, $thelogin, $passwordx);
mysql_select_db($mybdd) or die("erreur de connexion à la base de donnees");
?>
et sur le serveur B, dans le fichier de la iframe (le inscription.php), je fait un include :
include('http://adresse_de_mon_site.com/connexion/connexionmonpote.php') ;
et ça ne marche pas, j'ai le message suivant :
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
pour lequel des recherches google ne m'ont pas aidé
dans phpmyadmin, pour la base CLIENTS, j'ai bien pour utilisateur :
monpote % (serveur) global (type) SELECT, INSERT, UPDATE (privilèges) Oui (grant)
inutile de vous dire que tout cela, c'est pour hier, mais toute aide sera appréciée évidemment.
Cordialement,
Alexandre
j'ai un serveur A, avec un LAMP
sur ce serveur, une BDD que nous appellerons CLIENTS
je dois proposer à quelqu'un une inscription déportée via une iframe sur un serveur B, de façon à ce que ce formulaire envoie les données dans ma BDD CLIENTS du serveur A
J'ai fait ceci :
j'ai créé un nouvel utilisateur sur le serveur A (avec phpmyadmin) :
INSERT INTO mysql.user
SET Host = '%', User = 'monpote', PASSWORD = PASSWORD( 'lepassword' ) , 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'
Puis je lui ai réduit les droits uniquement en select, update et insert :
GRANT SELECT , INSERT , UPDATE ON `CLIENTS` . * TO 'monpote'@'%';
puis recharge des privilèges :
FLUSH PRIVILEGES ;
sur mon serveur A, j'ai créé un fichier de connexion : connexionmonpote.php
<?php
$serveur = "IP de mon site";
$thelogin = "monpote";
$passwordx = "lepassword";
$mybdd = "CLIENTS";
// ----------------------------
$base = mysql_connect($serveur, $thelogin, $passwordx);
mysql_select_db($mybdd) or die("erreur de connexion à la base de donnees");
?>
et sur le serveur B, dans le fichier de la iframe (le inscription.php), je fait un include :
include('http://adresse_de_mon_site.com/connexion/connexionmonpote.php') ;
et ça ne marche pas, j'ai le message suivant :
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
pour lequel des recherches google ne m'ont pas aidé
dans phpmyadmin, pour la base CLIENTS, j'ai bien pour utilisateur :
monpote % (serveur) global (type) SELECT, INSERT, UPDATE (privilèges) Oui (grant)
inutile de vous dire que tout cela, c'est pour hier, mais toute aide sera appréciée évidemment.
Cordialement,
Alexandre
A voir également:
- {MySQL} acces distant - pb de config
- Ms config - Guide
- Acces rapide - Guide
- Connaitre sa config pc - Guide
- Accès refusé - Guide
- Trousseau d'accès iphone - Guide
1 réponse
Bonjour,
ton problème vient de
$base = mysql_connect($serveur, $thelogin, $passwordx);
En effet, mysql_connect ne permet PAS de se connecter à une base MySQL via HTTP, or quand tu es sur le site de ton pote, il y a de fortes chances qu'il ne voit pas ton serveur MySQL qui est privé !
Plusieurs solutions :
1/ rendre l'IP de ton serveur SQL publique sur le port 3306 => TRES MAUVAIS pour la sécurité, mais si ca peut te dépanner momentanément ...
2/ Plus pérenne : faire que le formulaire sur la machine de ton pote poste ses données sur une page a toi
(form action="www.monsite.com/incription.php"), ainsi ça n'est pas son serveur qui se connectera au tien mais juste le form HTML qui postera sur une page chez toi, et plus de problème d'IP ...
Bon courage
ton problème vient de
$base = mysql_connect($serveur, $thelogin, $passwordx);
En effet, mysql_connect ne permet PAS de se connecter à une base MySQL via HTTP, or quand tu es sur le site de ton pote, il y a de fortes chances qu'il ne voit pas ton serveur MySQL qui est privé !
Plusieurs solutions :
1/ rendre l'IP de ton serveur SQL publique sur le port 3306 => TRES MAUVAIS pour la sécurité, mais si ca peut te dépanner momentanément ...
2/ Plus pérenne : faire que le formulaire sur la machine de ton pote poste ses données sur une page a toi
(form action="www.monsite.com/incription.php"), ainsi ça n'est pas son serveur qui se connectera au tien mais juste le form HTML qui postera sur une page chez toi, et plus de problème d'IP ...
Bon courage