Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/11/2007, à 00:52

v4np13

Changer le port de mysql

Bonjour,

J'ai installé un serveur LAMP sur ma machine, mais j'aurai besoin de changer le port de MySQL (3306) en 8080. C'est pour un projet de programmation réseau, j'aurai besoin d'une base de données pour stocker en cas de pépins. En testant mon application, je me suis rendu compte que le port sortant 3306 était fermé à  l'unif. Comme solution, je peux utiliser un des deux ports ouverts (80 et 8080).

Pour ce faire, j'ai été modifier dans le fichier my.cnf

[client]
port        = 8080 #3306
socket        = /var/run/mysqld/mysqld.sock

[mysqld]
#
# * Basic Settings
#
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
port        = 8080 #3306
basedir        = /usr
datadir        = /var/lib/mysql
tmpdir        = /tmp
language    = /usr/share/mysql/english
skip-external-locking

Et j'ai paramétré le routeur pour qu'il redirige le port 8080 vers la machine en question mais ça ne fonctionne pas...

Ai-je oublié une étape?

Merci par avance smile

PS1: La connexion marchait avec le port 3306 à  partir de réseaux "ouverts"
PS2: j'ai essayé en relancant Mysql, en rebootant,...

Hors ligne

#2 Le 15/11/2007, à 10:52

TobyKaos

Re : Changer le port de mysql

Tu as peut être déjà  une application utilisant le port 8080. du coup ca bloque peut être?

Hors ligne

#3 Le 15/11/2007, à 15:55

zerros

Re : Changer le port de mysql

c'est une connexion distante ou bien le script de connexion à  la bdd est sur le même serveur que le serveur MySQL ?

Hors ligne

#4 Le 15/11/2007, à 16:10

v4np13

Re : Changer le port de mysql

La base de données est sur ma machine (à mon domicile) et je dois pouvoir l'utiliser à partir de l'université.

Je fais la connexion à la base de données à partir de mes programmes en Java, donc pas de srcipts sur la machine interne.

Comment savoir si le port 8080 de ma machine est utilisé? Il me semble que le port 8080 est le port par défaut de la cache web.

Hors ligne

#5 Le 15/11/2007, à 16:25

zerros

Re : Changer le port de mysql

alors dans port tu mets :
port            = 8080

et dans bind-adress :
bind-address            = 0.0.0.0

tu ouvres le port sur ton routeur et tu reload mysql :
/etc/init.d/mysql restart

et tu testes depuis ton poste avec un telnet :
telnet ippubliquedetonserveur 8080

il va de soit que normalement, le 8080 n'est pas déjà  utilisé pour une autre application (mais si tu n'as fait aucun changement sur le serveur apache2, alors il devrait être dispo).

Hors ligne

#6 Le 15/11/2007, à 16:31

v4np13

Re : Changer le port de mysql

Pour le bind-adress, je l'avais déjà  mis comme ça.

Autrement, voici ce qu'il me donne:

vanpie@vanpie-desktop:~$ sudo /etc/init.d/mysql restart
[sudo] password for vanpie:
* Stopping MySQL database server mysqld                                 [ OK ]
* Starting MySQL database server mysqld                                 [ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.
vanpie@vanpie-desktop:~$ telnet mondyndns.org 8080
Trying 192.168.0.4...
Connected to mondyndns.org.
Escape character is '^]'.
H
5.0.45-Debian_1ubuntu3-log:m8m='L+,/KjTGEeO9n@4Connection closed by foreign host.

Hors ligne

#7 Le 15/11/2007, à 16:47

zerros

Re : Changer le port de mysql

ca a l'air de fonctionner a moins que ce ne soit pas ton mysql qui repond :s

en local sur to serveur test la connexion a mysql :
mysql -u root -p -h localhost -P 8080

si tu rentres bien c que coté serveur tout est OK. Si après d'où t est tu ny arrives pas,
alors vérifie si ton routeur n'écoute pas déjà sur le 8080 (pour sa configuration web distante par exemple).

Hors ligne

#8 Le 15/11/2007, à 17:14

v4np13

Re : Changer le port de mysql

La connection depuis la même machine fonctionne bien, mais depuis une machine distante, ça plante...:/

J'avoue que j'ai du mal à  voir o๠ça coince...

Hors ligne

#9 Le 15/11/2007, à 17:31

zerros

Re : Changer le port de mysql

Vérifie que ton routeur n'utilise pas déjà  le port 8080 pour autre chose. C'est souvent le cas pour configurer le routeur par interface web.

Sinon tu pourras essayer ce soir chez toi de t y connecter depuis une autre machine de ton réseau local. si ca fonctionne c'est que c'est bien ton routeur wink

Dernière modification par zerros (Le 15/11/2007, à 17:32)

Hors ligne

#10 Le 15/11/2007, à 20:36

v4np13

Re : Changer le port de mysql

Je viens d'essayer en local, ça ne marche pas non plus ailleurs que sur la machine o๠se trouve les bases de données.

Pareil avec un ordinateur distant, ça ne veut pas se connecter.

J'ai l'impression qu'on oublie un fichier,... dans la configuration

PS: je vois que le pc en question est une DMZ sur le routeur, serait-ce ça qui fait foirer les connections?

Dernière modification par v4np13 (Le 15/11/2007, à 21:49)

Hors ligne

#11 Le 16/11/2007, à 00:01

termi

Re : Changer le port de mysql

oups sur dmz sa veut dire que les port de la machine sont tous ouvert pour le routeur:| mais je dirais comme zerro bcp de routeur utulise le port 8080 donc je te sugere de configurer ton routeur  et de desactiver la maintenance du routeur par le 8080 jimagine que ton routeur est un d-link vue la plage ip et si je me trompe les d-link utulise le port 8080

Hors ligne

#12 Le 16/11/2007, à 00:03

termi

Re : Changer le port de mysql

as oui et desactive le dmz cest pas tres secure le dmz sert a laisser passer sur toute les port vers la machine en question

Hors ligne

#13 Le 16/11/2007, à 00:11

v4np13

Re : Changer le port de mysql

Je viens de désactiver le DMZ, mais le problème est toujours là.

Mon routeur n'est pas un D-Link, il s'agit d'un TrendNet TEW-435BRM. Je vais me renseigner un peu plus sur ce routeur.

PS: comment d'activer cette maintenance par le port 8080? je n'ai rien trouvé pour ça.

Dernière modification par v4np13 (Le 16/11/2007, à 00:12)

Hors ligne

#14 Le 16/11/2007, à 00:47

zerros

Re : Changer le port de mysql

humm .... si d'un pc local à ton serveur dans ton réseau local, la connexion ne fonctionne pas, c'est que tu as un souci quelque part.

Le fait que la connexion fonctionne en local montre une chose c'est que le mysql ecoute bien sur le port 8080.

Maintenant il y a une chose à laquelle je n'ai pas pensé. Tu dois IMPERATIVEMENT rajouter dans la bdd mysql et dans la table user une ligne avec en HOST l'ip ou le domaine depuis lequel tu te connectes (par exemple 192.168.0.7 pour le local, et pour le distant tu mets l'ip distante).

Si tu souhaites ouvrir les accès à plusieurs réseaux, tu insère autant de host que tu as de réseaux DIFFERENTS. Si les connexions viennent d'un même réseau mais que le dernier chiffre uniquement change, tu peux mettre 192.168.0.% par exemlple ou bien encore 192.168.%.

Si tu veux vraiment pas t'embêter tu rajoutes juste un enregistrement avec comme host %.

J'ai oublié de te dire que tu dois mettre le username et le mme password (encrypté avec la fonction PASSWORD de mysql) que le username que tu utilises en local. Si tu utilises root, alors tu fais la même insertion que celle déjà présente pour localhost (et/ou pour 127.0.0.1) sauf que tu vas juste changé le host.

Une fois les modif effectués, tu fais un FLUSH PRIVILEGES; pour prendre en compte tes modifs et tu retestes en local. Ca devrait fonctionner. Si ce n'est pas le cas c'est que tu as encore un problème ailleurs ou que tu auras mal fait tes nouvelles insertions.

N'hésite pas si tu as besoin d'aide wink

Hors ligne

#15 Le 16/11/2007, à 01:11

v4np13

Re : Changer le port de mysql

Merci beaucoup pour ces précisions, maintenant la commande suivante fonctionne en local, reste à voir si ça fonctionne en distant:
mysql -u root -p -h mondyndns.org -P 8080

Je testerai ça demain à l'unif en espérant que ça fonctionne (sur les PC locaux, j'ai rajouté une ligne dans /etc/hosts qui défini mondyndns.org sur l'IP réseau).

Fichue sécurité... ils ne peuvent pas faire comme tout le monde?! big_smile

Fin, je vous tiens au courant. smile

Hors ligne

#16 Le 16/11/2007, à 23:42

v4np13

Re : Changer le port de mysql

Me revoici, la connexion n'a pas fonctionné à  distance.

Mais en insistant auprès des informaticiens de l'université, ils devraient ouvrir le port 3306 pour qu'on puisse continuer. J'ai reconfiguré comme avant et je réessaye lundi en croisant les doigts...

Je me demandais, que risquent-ils à  ouvir ce port? A part se connecter à  MySQL, on ne devrait rien pouvoir faire d'autre, si?

Hors ligne

#17 Le 17/11/2007, à 00:01

zerros

Re : Changer le port de mysql

Ca me parait gros là . J'ai fais le test avec mysql sur un port 8080 et que ce soit en local (dans mon reseau local) ou a distance (depuis mon boulot), ca fonctionne niquel.

Est-u certain d'avoir correctement insérer l'ip PUBLIQUE de l'université ?

Active les log dans my.cnf et regarde les logs quand tu essai de te connecter à  Mysql.

Si tu ne vois rien arriver c'est que c'est ton routeur qui ne laisse pas passer les requetes 8080.

Hors ligne

#18 Le 17/11/2007, à 00:05

v4np13

Re : Changer le port de mysql

zerros a écrit :

Est-u certain d'avoir correctement insérer l'ip PUBLIQUE de l'université ?

J'ai l'impression qu'on s'est mal compris? La base de données n'est pas à  l'université, elle est chez moi et j'essaye d'y accéder à  partir de l'université.

Hors ligne

#19 Le 17/11/2007, à 00:38

zerros

Re : Changer le port de mysql

Oui, c'est bien c que j'avais compris.

Dans la table user et db sur ton serveur MySQL chez toi, tu dois définir l'ip du client (donc en l'occurence il s'agit de l'ip publique de l'unif puisque tu essaies de te connecter depuis là  bas).

je te montre un exemple :
pour l'utilisateur root en local au serveur dans la table user :
localhost      root      *26F194379EFFC1CD1878FE8D8FFABD3EC64061 ... (je te passes tous les droits derrière)

Maintenant si je veux adresser des requêtes sur mon serveur MySQL depuis un autre PC de mon réseau (192.168.1.0 par exemple). Disons que le PC en question à  l'IP 192.168.1.5 :
192.168.1.5      root      *26F194379EFFC1CD1878FE8D8FFABD3EC64061 ... (je te passes tous les droits derrière)

Donc de la même façon, disons que je me trouve à  ton université, alors il me faut l'ip publique de l'université pour la rentrer dans la bdd (pour la connaitre soit tu regardes les connexions établies sur ton serveur ou soit tu vas sur une url du style http://www.interpc.fr/ip.asp :
212.56.8.85      root      *26F194379EFFC1CD1878FE8D8FFABD3EC64061 ... (je te passes tous les droits derrière)

Si tu utilises le compte root pour te connecter, alors tu n'as pas besoin de rajouter une entrée dans la table db. Si ce n'est pas le cas alors il faudra y rajouter une entrée avec en host les ip précédemment rajoutés dans la table user, le nom de la bdd à  laquelle l'utilisateur à  droit de se connecter et le nom de l'utilisateur que tu vas utiliser (il doit avoir été créé dans la table user avant sinon ca ne fonctionnera pas).

Tu comprends mieux le fonctionnement ?

Hors ligne

#20 Le 17/11/2007, à 00:46

v4np13

Re : Changer le port de mysql

J'avais fait avec le % pour toutes les ip dans user (comme tu me l'avais dit), donc ça aurait du fonctionner, mais non. neutral

Je viens de vérifier dans la table db, également % pour le host.

Dernière modification par v4np13 (Le 17/11/2007, à 00:46)

Hors ligne

#21 Le 17/11/2007, à 00:50

zerros

Re : Changer le port de mysql

ok, good. alors c ton routeur qui bloque wink Alors soit tu arrives à  le configurer en désactivant le port 8080 qui est actuellement activé dessus, ou soit tu attends patiemment l'ouverture le port 3306 wink

Au fait, quand tu tapes http://ipdLOCALetonrouteur:8080/ en local, ca te donne quelque chose ?

Et si tu tapes http://ipdPUBLIQUEdetaconnexioninternet:8080/ depuis l'extérieur, ca te renvoi quelque chose ?

Hors ligne

#22 Le 17/11/2007, à 01:00

v4np13

Re : Changer le port de mysql

http://192.168.0.1:8080/ depuis l'intérieur: Unable to connect (j'ai remis le port de mysql à  3306)

Pour la 2eme demande, je ne saurai pas te dire ça maintenant.

Je pense que je vais voir ce que ça va donner avec l'ouverture du port 3306 (je saurai lundi si ça marche). Pour l'instant, ça fonctionne pour ceux qui s'y connectent depuis un réseau étranger (faut bien bosser et comme je ne suis pas le seul sur le projet).

Mais si tu as une piste pour le port 8080, je serai intéressé de savoir pourquoi ça n'a pas fonctionné.:)

Hors ligne

#23 Le 17/11/2007, à 01:05

zerros

Re : Changer le port de mysql

La seule piste que je vois, c'est que ton routeur utilise déjà  le port 8080 pour un autre service (certainement de la configuration distante du routeur). d'ailleurs ton premier telnet depuis l'extérieur sur le port 8080 permet de dire justement que ce port est déjà  utilisé, et pour autre chose que ton mysql :s

Essai de voir la doc de ton routeur :d

Mais g bien l'impression que t'es bien arrivé jusqu'à  ton serveur :

vanpie@vanpie-desktop:~$ telnet mondyndns.org 8080
Trying 192.168.0.4...
Connected to mondyndns.org.
Escape character is '^]'.
H
5.0.45-Debian_1ubuntu3-log:m8m='L+,/KjTGEeO9n@4Connection closed by foreign host. hmm

Mais un truc simple pour vérifier que les requêtes sur le port 8080 arrivent bien jusqu'au serveur : TCPDUMP EST TON AMI lol :$

Et si c'est le cas c'est toujours bien d'activer les logs de MySQL pour vérifier que MySQL répond bien aux tentatives de connexion (quitte à  ce qu'il les refuse mais au moins tu auras tester la connexion).

Dernière modification par zerros (Le 17/11/2007, à 01:12)

Hors ligne

#24 Le 17/11/2007, à 01:15

v4np13

Re : Changer le port de mysql

Lors du premier telnet, j'avais déjà  changé le port en 8080, donc c'est possible que ce soit mysql et pas le routeur qui soit la cause de ce retour.

Pour la doc, je l'ai lue, relue, rien concernant ce port n'est signalé,... J'ai aussi fait la mise à  jour du firmware, ce qui n'a rien changé non plus.

Hors ligne

#25 Le 17/11/2007, à 01:18

zerros

Re : Changer le port de mysql

Donc c'était bien MySQL qui avait rejeté la connexion ?! Donc les requêtes passaient bien jusqu'au serveur.

Active les logs de MySQL. La cause de ce rejet y sera certainement logué wink Je suis désolé, mais je fatigue un peu et je commence à  m'endormir sur mon clavier. alors je vais te dire à  demain lol tongue

Hors ligne