problème connexion distante mysql, d'un autre domaine

matsony

Nouveau WRInaute
j'ai 2 noms de domaines:
domaine1 et domaine2

- le 1er (domaine1) possède une bdd mysql et fonctionne correctement, la connexion passe très bien.
- le 2e (domaine2) ne possède pas de bdd et dois se connecter sur celle du 1er.
cependant le script de connexion ne passe pas quand la page est hébergée dans le hosting de domaine2:

$serveur = "mysql.netfirms.com";
$login_serv = "ulogin";
$pwd_serv = "68pwd";
mysql_connect ($serveur,$login_serv,$pwd_serv) or die ('ERREUR '.mysql_error());
mysql_close();

cependant ce script marche à partis de easyphp en local.
 

matsony

Nouveau WRInaute
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '127.0.0.1' (13) in /mnt/w0508/d37/s15/b02f6f44/www/senlist.com/script-de-connexion-mysqlhost-netfirms.php on line 15
ERREUR Can't connect to MySQL server on '127.0.0.1' (13)
 

matsony

Nouveau WRInaute
line 12/ $serveur = "mysql.netfirms.com";
line 13/ $login_serv = "ulogin";
line 14/ $pwd_serv = "68pwd";
line 15/ mysql_connect ($serveur,$login_serv,$pwd_serv) or die ('ERREUR '.mysql_error());
line 16/ mysql_close();
 

matsony

Nouveau WRInaute
je suis sûr de "mysql.netfirms.com". et l'ip du serveur ne marche pas non plus.
le script marche si j'enregistre la page dans le hosting de domaine1 (qui possède la base) et quand je l'éxecute dans easyphp
 

BlackPot

Nouveau WRInaute
Attention si tu cherches à te connecter à une base mysql située sur un serveur distant. Tu dois autoriser sur ce serveur distant (mysql.netfirms.com) l'adresse IP de l'autre domaine à se connecter. En effet, mysql tourne par défaut en localhost et n'autorise que des connexion de celui-ci pour des raisons de sécurité.
 

Bool

WRInaute passionné
Oui enfin en cherchant à se connecter à 127.0.0.1, ça a peu de chance de fonctionner...
 

matsony

Nouveau WRInaute
en effet dans le control panel d'admlinistration de la base, il y'a une rubrique "Remote Connection" où "remote access" est sur l'option "allow" et non sur l'option "disallow"
 

matsony

Nouveau WRInaute
aide que me propose mon hébergeur:


How do I connect to a mySQL database using PHP?

To connect to a database via PHP, you must be familiar with PHP scripting as well as MySQL commands.

Below is a sample program using PHP to interact with a MySQL database, which has been commented to explain each function (where username is the database username, password is the database password and and dbid is the database id for the database you wish to connect to):

<?
$hostname = "mysqlhost";
$username= "username";
$password= "password";
$dbid="dbid";
$link=mysql_connect($hostname, $username, $password);
mysql_select_db($dbid) or die ("Unable to connect to MySQL");
print "Connected to MySQL
";
mysql_close($link);
?>

NOTE: The mysql password should be no more than 8 alpha-numeric characters. To identify the database username, password and dbid, click here for further instructions.

For remote connections:

<?
$hostname = "mysqlhost.netfirms.com:3306";
$username= "username";
$password= "password";
$dbid="dbid";
$link=mysql_connect($hostname, $username, $password);
mysql_select_db($dbid) or die ("Unable to connect to MySQL");
print "Connected to MySQL
";
mysql_close($link);
?>

For remote connections where the database is residing on a different/separate Netfirms hosting account:

A. Identify the NF_MYSQL_HOST address for the account where the database resides:

1. Login to the Netfirms Members Control Panel at https://controlpanel.netfirms.com
2. Click Site Tools
3. Click Environment
4. Refer to the NF_MYSQL_HOST line entry and jot down the value indicate (eg. It will look similar to: NF_MYSQL_HOST=10.8.12.2:3306 but the IP address may be different for your acocunt)

B. Code your PHP script on the account that needs to make the remote database connection

1. The first line of your PHP script that will make a remote connection to your database residing on Netfirms should look similar to:

putenv("NF_MYSQL_HOST=10.8.12.2:3306");

Below is a sample code:

<?
putenv("NF_MYSQL_HOST=10.8.12.2:3306");
$hostname = "mysqlhost.netfirms.com:3306";
$username= "dbUsername";
$password= "dbPassword";
$dbid="dbid";
$link=mysql_connect($hostname, $username, $password);
mysql_select_db($dbid) or die ("Unable to connect to MySQL");
print "Connected to MySQL";
mysql_close($link);
?>
 

Bool

WRInaute passionné
$hostname = "mysqlhost.netfirms.com:3306";

toi tu as mis :
$serveur = "mysql.netfirms.com";

hors ça ne pointe pas du tout au même endroit...
 

matsony

Nouveau WRInaute
j'ai repris à l'identique le dernier script.

résultat :

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'u7....'@'cgihost' (using password: YES) in /mnt/w0508/d37/s15/b02f6f44/www/senlist.com/script-de-connexion-mysqlhost-netfirms.php on line 25
Connected to MySQL
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /mnt/w0508/d37/s15/b02f6f44/www/senlist.com/script-de-connexion-mysqlhost-netfirms.php on line 28
 

matsony

Nouveau WRInaute
yes j'ai mis exactement :

<?php
putenv("NF_MYSQL_HOST=10.8.12.2:3306");
$hostname = "mysqlhost.netfirms.com:3306";
$username= "u7.....";
$password= "...";
$dbid=".....";
$link=mysql_connect($hostname, $username, $password);
mysql_select_db($dbid) or die ("Unable to connect to MySQL");
print "Connected to MySQL";
mysql_close($link);
?>
 

Bool

WRInaute passionné
bah justement, faut modifier cette adresse IP :
A. Identify the NF_MYSQL_HOST address for the account where the database resides:

1. Login to the Netfirms Members Control Panel at https://controlpanel.netfirms.com
2. Click Site Tools
3. Click Environment
4. Refer to the NF_MYSQL_HOST line entry and jot down the value indicate (eg. It will look similar to: NF_MYSQL_HOST=10.8.12.2:3306 but the IP address may be different for your acocunt)
 

matsony

Nouveau WRInaute
dans les variables d'environnement, j'ai :
...
NF_MYSQL_HOST 10.8.12.6:3306
PATH /bin:/usr/bin
QUERY_STRING action=20
REMOTE_ADDR 213.xxx.xx.xx
...

pensez vous que je dois utiliser ce remote_addr ?
 

matsony

Nouveau WRInaute
je dois modifier l'addresse ip du NF_MYSQL_HOST ou de mon $hostname ?

Bool a dit:
bah justement, faut modifier cette adresse IP :
A. Identify the NF_MYSQL_HOST address for the account where the database resides:

1. Login to the Netfirms Members Control Panel at https://controlpanel.netfirms.com
2. Click Site Tools
3. Click Environment
4. Refer to the NF_MYSQL_HOST line entry and jot down the value indicate (eg. It will look similar to: NF_MYSQL_HOST=10.8.12.2:3306 but the IP address may be different for your acocunt)
 

Bool

WRInaute passionné
Bah c'est clairement indiqué par ton hébergeur quand même :?
Si tu ne saisi pas un mot d'anglais, il faudrait peut être envisager d'utiliser les services d'un hébergeur français non ?
 

matsony

Nouveau WRInaute
le code proposé par mon hébergeur ne fonctione pas.
mon soucis c'est pas l'anglais, c'est que le code proposé par l'héberguer ne marche pas du tout.
 

Bool

WRInaute passionné
Ton hébergeur indique clairement qu'il faut modifier la variable d'environnement NF_MYSQL_HOST de leur exemple. Chose que visiblement tu ne fais pas...
 

matsony

Nouveau WRInaute
quand je change le NF_MYSQL_HOST=10.8.12.2:3306
en NF_MYSQL_HOST=213.xxxxxxx
il m'affiche imposible de trouver une base mysql au 213.xxxx
 

Discussions similaires

Haut