Archives du mot-clé my.cnf

Donner l’accès distant à une base de données MySQL

Voilà, dans le cadre d’une migration, j’ai dû autoriser sur mon serveur l’accès à ma base de données MySQL dont voici la marche à suivre :

Etape n ° 1: Se connecter via ssh

Se connecter via ssh sur son serveur en root (via Kitty) et saisir la ligne de commande suivante pour donner l’autorisation de l’écoute du port au niveau du firewall :

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3306 -j ACCEPT

 

Etape n ° 2: Permettre la mise en réseau

Toujours sur le serveur, il s’agit de modifier le fichier de configuration my.inf avec l’éditeur de texte vi

vi /etc/my.cnf

Repérer la ligne avec la balise [mysqld], assurez-vous que la ligne skip-networking est commentée par « # » (ou supprimez la ligne) et ajouter la ligne suivante :

Bind-address = xxx.xxx.xxx.xxx # l'adresse ip du serveur hébergeant votre bdd

Pour connaître l’adresse IP de son serveur, un petit ifconfig avec lecture du résultat : eth0 … inet adr:xxx.xxx.xxx.xxx

Par exemple, si l’adresse de votre serveur est 88.45.121.23 :

[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
bind-address=88.45.121.23

Enregistrer et quitter le fichier (:wq!, cf. Vi, les raccourcis de l’éditeur de texte), puis redémarrer le service mysqld :

/etc/init.d/mysqld restart

 

Etape n ° 3: Accorder l’accès à l’adresse IP distante

Tout d’abord, connecter vous à mysql en ligne de commande :

mysql -u root -p mysql

Puis saisissez votre mot de passe (l’utilisateur ayant tous les privilèges peut également être admin, tout dépend de votre configuration mysql).

Il s’agit ensuite de donner les droits à un utilisateur de se connecter à distance via la commande suivante :

mysql> GRANT ALL ON base_test.* TO user_test@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'pwd_test';

  • base_test : la base de données nécessitant un accès à distance
  • user_test : l’utilisateur qui doit y accéder
  • xxx.xxx.xxx.xxx : l’adresse IP du serveur contenant la bdd (88.45.121.23 dans notre exemple)
  • pwd_test : le mot de passe de l’utilisateur

Se déconnecter de mysql.

mysql> exit

 

Etape n ° 4: Tester le résultat

Il est possible de tester les différentes actions réalisées via une commande mysql ou telnet :

mysql -u user_test –h 88.45.121.23 –p
telnet 88.45.121.23 3306

Enjoy !