Page 1 sur 2

mysql_connect host ip ?

Posté : 10 nov. 2007, 21:46
par costadelo
Bonsoir @ tous,

Pourquoi n'est il pas possible pour mysql_connect de recevoir en argument host une adresse ip de serveur ?
$link = mysql_connect('193.240.xxx.xxx', 'mysql_user', 'mysql_password');
Soit je laisse ainsi, et je n'obtient pas de résultat lors de léxécution de requêtes, soit j'ajoute le numero de port (193.240.xxx.xxx:3306) à la suite et j'obtient : Warning: mysql_connect(): Lost connection

Mon serveur tourne sous opensuse 10.2. Le fichier de configuration de mysql (my.cnf) contient la ligne suivante pour la définition du numéro de port :

port = 3306

Posté : 10 nov. 2007, 22:26
par Victor BRITO
$link = mysql_connect('193.240.xxx.xxx, 'mysql_user', 'mysql_password');
As-tu bien refermé la chaîne de caractères comportant l'adresse IP ? :wink:

Posté : 10 nov. 2007, 23:25
par costadelo
:lol: je viens de rééditer mon message !
J'avai oublié de la fermé en masquant mon ip avec mes xxx.xxx :P
Et j'aurai eu une "syntax error" au lieu d'un mysql_error lost connection si ca avait été le cas :wink:

Posté : 11 nov. 2007, 00:57
par @rthur
Bonjour,

Il est tout à fait possible de mettre l'adresse IP du serveur et d'indiquer le numéro de port.
Si le port n'est pas spécifié, c'est le port par défaut 3306 qui sera utilisé.

Regarde dans ton fichier de config MySQL: "my.cnf", pour permettre l'accès à distance à MySQL (= depuis un autre serveur que le serveur local), il faut que la ligne:

Code : Tout sélectionner

bind-address = 127.0.0.1
soit mise en commentaire (= avec un # devant).
Si ce n'est pas le cas, fait le et relance ton serveur MySQL, ça devrait marcher :)

Posté : 11 nov. 2007, 14:57
par costadelo
Je ne trouve pas cette ligne dans mon fichier my.cnf...
bind-address = 127.0.0.1

Posté : 11 nov. 2007, 15:10
par @rthur
Je ne trouve pas cette ligne dans mon fichier my.cnf...
bind-address = 127.0.0.1
Regarde alors si tu as une directive "skip-networking" (et si c'est le cas alors il faudra peut être penser à mettre à jour ta version de MySQL)

Posté : 11 nov. 2007, 23:19
par costadelo
J'ai la version 5.0.26 de Mysql. Effectivement j'ai bien une directive skip-networking qui est mise en commentaire. Je suis vraiment obligé de tout ré-installé ?

Posté : 11 nov. 2007, 23:37
par Hubert Roksor
Le "Lost connection" me fait penser à un problème lors de l'identification, n'aurais-tu pas mis à jour MySQL sans mettre à jour les tables systèmes ? Sinon, regarde dans tes logs, il y a sûrement quelque chose.

Posté : 11 nov. 2007, 23:50
par costadelo
Ma table user dans la base mysql contient bien les identifiants de connection avec lesquels je me connecte d'habitude

Posté : 11 nov. 2007, 23:53
par Hubert Roksor
Je n'ai pas dit que c'était un problème d'identification, mais durant l'identification. À quel moment ce problème est-il apparu ? N'as-tu jamais mis à jour MySQL ?

Posté : 12 nov. 2007, 00:06
par costadelo
En fait auparavant je me connectai en utilisant "localhost" au lieu de l'adresse ip de mon serveur. Jusqu'à ce que je me dise qu'il serait préférable de renseigner directement l'adresse ip dans le cas où j'aurai à géré un serveur mySQL distant (ce qui va se passer à l'avenir...) Et sinon, non, je n'ai jamais mis à jour mysql.

Posté : 12 nov. 2007, 01:34
par costadelo
Je viens de regarder, et pour l'utilisateur qui se connecte à ma base à distance, j'ai bien défini le "%" à la place de "localhost" dans phpMyAdmin.

Posté : 12 nov. 2007, 11:23
par @rthur
Je viens de regarder, et pour l'utilisateur qui se connecte à ma base à distance, j'ai bien défini le "%" à la place de "localhost" dans phpMyAdmin.
et tu as fait un

Code : Tout sélectionner

flush privileges;
pour qu'il prenne en compte la modif?

Posté : 12 nov. 2007, 13:44
par costadelo
Je viens d'exécuter la commande flush privileges, çà ne fonctionne pas pour autant...Comment cela ce fait que dans ma version de Mysql (5.0.26) il n'y est pas la directive bind-address ???

Posté : 12 nov. 2007, 14:52
par Berzemus
juste par hasard, y'a pas de firewall ou autre d'actif ? autant sur le serveur que sur le poste client ?