mysql_connect host ip ?

Eléphanteau du PHP | 45 Messages

10 nov. 2007, 21:46

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
Modifié en dernier par costadelo le 10 nov. 2007, 23:22, modifié 1 fois.

Mammouth du PHP | 2937 Messages

10 nov. 2007, 22:26

$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:

Eléphanteau du PHP | 45 Messages

10 nov. 2007, 23:25

: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:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 nov. 2007, 00:57

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 :)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 45 Messages

11 nov. 2007, 14:57

Je ne trouve pas cette ligne dans mon fichier my.cnf...
bind-address = 127.0.0.1

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 nov. 2007, 15:10

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)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 45 Messages

11 nov. 2007, 23:19

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é ?

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

11 nov. 2007, 23:37

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.

Eléphanteau du PHP | 45 Messages

11 nov. 2007, 23:50

Ma table user dans la base mysql contient bien les identifiants de connection avec lesquels je me connecte d'habitude

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

11 nov. 2007, 23:53

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 ?

Eléphanteau du PHP | 45 Messages

12 nov. 2007, 00:06

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.

Eléphanteau du PHP | 45 Messages

12 nov. 2007, 01:34

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.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 nov. 2007, 11:23

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?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 45 Messages

12 nov. 2007, 13:44

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 ???

ViPHP
ViPHP | 4039 Messages

12 nov. 2007, 14:52

juste par hasard, y'a pas de firewall ou autre d'actif ? autant sur le serveur que sur le poste client ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.