Accès distant à un serveur Mysql (Remote access)

Modifier la configuration du serveur Mysql

  1. sudo nano /etc/mysql/my.cnf

Et vérifier que ces lignes soient présentes ou commentées :

 

  • # Mettre ici l'adresse IP de votre serveur
  • bind-address = XXX.XXX.XXX.XXX
  • # Cette ligne doit être commentée ou inexistante
  • # skip-networking
  • # skip-external-locking

 

Puis redémarrer le serveur :

  1. sudo /etc/init.d/mysql restart

 

Créer l’utilisateurs SQL dans phpmyadmin

Dans phpmyadmin, cliquer sur "Privilèges", qui mènera vers la page des autorisations d’accès au serveur.

Cliquez ensuite sur "Ajouter un utilisateur" qui mènera vers un formulaire pour ajouter une autorisation et remplissez comme suit en modifiant les valeurs qui vous intéressent :

  • Ajouter un utilisateur : nom du nouvel utilisateur, il peut être le même qu’un autre utilisateur déjà existant (root par exemple). Ici nous mettrons "remote-user"
  • Serveur : Correspond à l’adresse d’où l’utilisateur peut se connecter. Si c’est le cas d’une connexion d’IP fixe au serveur, on y mettra l’ip du serveur qui souhaite se connecter. Si la connexion est t souhaitée depuis plusieurs IP ou d’une IP non fixe, il faut autoriser toute connexion en mettant "%". Ici, nous mettrons %.
  • Mot de passe : le mot de passe de l’utilisateur en question

Ensuite vous pouvez régler les privilèges de cet utilisateur pour le serveur en entier. Il est également possible de régler les privilèges table par table en ne donnant pas de droit sur le serveur et en réglant les privilèges dans chaque table.

Ouverture des ports du firewall

Il est ensuite nécessaire de pouvoir accéder au serveur mysql à travers le firewall. Le port par défaut du serveur est3306.

Si vous utilisez iptables, il suffit de tapper :

  • sudo /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

 

Cette commande ouvrira le port 3306 depuis toutes les machines.

Il est aussi possible de limiter à une adresse IP particulière de la sorte :

  • /sbin/iptables -A INPUT -i eth0 -s XXX.XXX.XXX.XXX -p tcp --destination-port 3306 -j ACCEPT

 

Cette commande autorise alors la connection uniquement depuis l’adresse XXX.XXX.XXX.XXX

Si vous utilisez shorewall, il faut modifier sa configuration de la sorte :

  • sudo nano /etc/shorewall/rulesl

 

en ajoutant la ligne :

  • ACCEPT:info net fw tcp 3306

 

Il est nécessaire ensuite de redémarrer shorewall :

  • sudo /etc/init.d/shorewall restart

 

Test de connexion

Pour tester la connexion, dans un terminal de la machine cliente, on essayera la commande :

  1. mysql -h XXX.XXX.XXX.XXX -u remote-user -p

 

Il est à noter que XXX.XXX.XXX.XXX correspond ici à l’adresse ou au nom d’hôte sur lequel nous souhaitons nous connecter.

Vous devriez tomber sur l’application Mysql en ligne de commande sur le serveur distant.

  • 0 Utilisateurs l'ont trouvée utile
Cette réponse était-elle pertinente?

Articles connexes

Gestion redirection apache (Nginx) (alias: httpd.conf)

Généralement vous trouverai l'ensemble des fichiers necessaires dans le dossier...

Commande SSH DIG

Besoin d'un réversing de nom de domaine ? La commande DIG mondomaine.com vous permet de faire...

Commande SSH Grep

Besoin de rechercher dans le contenu de fichier un mot ? La fonction SSH Grep est là pour...

Commande SSH MysqlDump

Pour effectuer une sauvegarde de votre base de données en SSH, il suffit de faire : mysqldump...

Commande SSH TAR

Pour compresser un dossier, il suffit de faire la commande SSH suivante :tar cvzf...