MySQL depuis l'extérieur ?

Je voulais depuis longtemps me connecter à mon serveur MySQL depuis l'extérieur, que ce soit par ligne de commande, grâce à un serveur distant tournant avec PHP ou encore un programme comme MySQL Query Browser.

Les utilisateurs MySQL sont identifiés par un login, un mot de passe et également un hôte (ce qui permet par exemple d'avoir plusieurs utilisateurs 'john' avec des droits différents en fonction de la machine d'accès). Sous PHPMyAdmin lorsque l'on ajoute un utilisateur on a la possibilité de paramétrer l'hôte à "Tous les serveurs", seulement PHPMyAdmin enregistre un % (pourcentage) dans le champ dédié pour le hôte (les utilisateurs sont sauvegardé dans une table pour ceux qui ne le savent pas).

Or ! Et c'est là tout l'intérêt du billet, cela ne fonctionne pas... Pour pouvoir se connecter au serveur depuis l'extérieur il faut mettre ce champ à * (astérisque) ou alors préciser l'IP ou le nom de la machine (je n'ai pas testé, il y a peut-être une option à activer dans le fichier de configuration).

J'espère que ça vous sera utile. Pour que cela fonctionne n'oubliez pas d'ouvrir le port pour que MySQL soit accessible (3306 par défaut).

Commentaires

Je trouve ça très peu secure de laisser le SQL accessible de partout. Meme si les mots de passes sont bien, rien n'empêche un petit malin de tenter un brute force qui enverra tout un tas de requêtes d'auth au serveur.

Par contre en passant sur un autre port ou avec un tunnel ssl (ou les deux), pourquoi pas, la feature est intéressante. Ou alors avec une whitelist (vive les IP fixes)

Toujours le premier à répondre celui-là, je me demande quand il travaille...

Toute la configuration pour accepter une connexion extérieur dans mysql se fait essentiellement dans le my.cnf :

1. Editer le fichier de configuration my.cnf :

Dans le fichier /etc/mysql/my.cnf (ou /usr/local/mysql/conf/my.cnf si vous avez compilé vous-même le serveur) : commentez le paramètre 'bind-address' pour permettre l'accès distant.

2. Créer un compte mysql (à partir du client mysql servant d'interface avec le serveur MySQL)...

Au fait, pour préciser quand même, Julien T est censé être mon directeur technique, j'ai pas mis les mains dans le cambouis d'un serveur depuis au moins 1 an (vu que ça fait 1 an qu'il est là !)

Je suis d'accord c'est loin d'être sécurisé, mais c'est juste pour un serveur de dev.

Ou si jamais j'ai besoin d'une base de données assez rapidement (et j'ai pas trop envie d'installer easyPHP...).

Merci pour les conseils Julien(s) ! Je me demande pourquoi je fais des billets parce que vous trouvez toujours quelque chose à dire :( ...

;-)

C'est pas le principe des commentaires ? ^^

Julien P. > je travaille des fois mais vers 16h je jette un oeil à G. Reader :)

Neovov > la vraie question c'est 'mais à quoi tu sers ?' :D

10minutes pour poster le billet, bravo!

Ton auto_increment des commentaires est flippant... Tu te fais tant spammer que ça pour arriver à 64548 depuis octobre '05 ??

@Julien Tartarin : Si si, mais à chaque fois ça me déprime ^^.

@Julien Pellegrain : :'( !

@Palleas : :-P.

@Julien Tartarin (bis) : Euh oui je me fais spammer comme un salaud. Là j'ai pas vidé depuis vendredi et j'en suis à 3502 spams de commentaires et 2111 de trackback... J'en ai tellement que j'ai fait un petit script pour spamclear pour tous les virer d'un coup, par l'interface je mettrai trop de temps... (faudrait qu'un jour je mette la version 2).

Hop, 3 minutes pour mettre à jour le filtre...
Depuis ton commentaire il s'est écoulé 13h en gros et jme suis pris 550 spams...

D'ailleurs le temps que j'écrive ce commentaire j'en ai reçu 10 autre...

bonjour, je suis très décu du nouveau hotmail (window live messenger) car ca prend un éternité lorsque s'il charge et en plus ca finit que je n'ai meme pas ma page. je voudrais savoir comment faire pour l'enlever car je ne suis plus capable de lire mes messages. merci

josie

Julien P. nous expliquait:

> 1. Editer le fichier de configuration my.cnf :

> Dans le fichier /etc/mysql/my.cnf (ou
> /usr/local/mysql/conf/my.cnf si vous avez compilé
> vous-même le serveur) : commentez le paramètre
> 'bind-address' pour permettre l'accès distant.

heu, pas exactement : bind-address, comme son nom l'indique (bind = relier) permet d'attacher le service MySQL à une adresse IP, à savoir,

bind-address = 127.0.0.1

pour un service accessible seulement aux applications situées sur la même machine et,

bind-address = 212.121.012.021

qui est l'IP de votre serveur, pour permettre un accès distant.

Si vous êtes sous Linux (what else ?), il y a la commande 'mysql_setpermission' qui est très utile pour accorder des niveaux d'accès à votre service MySQL, suivant les droits, les bases, les utilisateurs, les hotes distants...

Bonjour

Ayant le meme probleme que Neovov, j'ai appliqué (je precise tout de suite sans succes.) différentes methodes que l'on m'a conseillé :

j'ai modifié le fichier /etc/mysql/my.cnf

1) bind-address = 127.0.0.1
--> j'ai mis 0.0.0.0 mais impossible de me connecter avec MysqlBrowser depuis un autre pc (win xp) de mon reseau

2) en commantant la ligne suivante
#bind-address = 127.0.0.1
--> toujours impossible de me connecter avec mysql browser depuis mon autre pc

Remarque: a chaque modification j'ai executé la commande
/etc/ini.d/mysql restart

Est ce que une ame charitable pourrait me guider dans mon combat ;)
Merci

Laissez le vôtre !

Les commentaires pour ce billet sont fermés.

À propos du billet

lundi 29 janvier 2007 à 15:39

Classé dans :

16 commentaires

Navigation inter-billets