Généralement, l'accès à distance au serveur de base de données MySQL est désactivé pour des raisons de sécurité. Cependant, vous devez parfois fournir un accès à distance au serveur de base de données MySQL depuis votre domicile ou un serveur Web. Vous pouvez suivre ces étapes pour l'activer.
Étape 1 :Connectez-vous en utilisant SSH (si le serveur est en dehors de votre environnement ou intranet)
Tout d'abord, connectez-vous via ssh au serveur de base de données MySQL distant à partir de Windows à l'aide de PuTTy ou de Linux à l'aide de SSH
Étape 2 :Modifier le fichier my.cnf
Une fois connecté, vous devez modifier le fichier de configuration du serveur MySQL my.cnf à l'aide d'un éditeur de texte tel que vi :
- Sur Debian Linux le fichier est situé dans /etc/mysql/my.cnf emplacement.
- Sur Red Hat Linux/Fedora/Centos Linux le fichier est situé à /etc/my.cnf emplacement.
Pour modifier /etc/my.cnf, exécutez :
# vi /etc/my.cnf
- Sous Windows , le fichier my.ini se trouve dans C:\Program Files\MySQL\MySQL Server X.Y (X.Y est le numéro de version du serveur MySQL)
Pour Windows, ouvrez le fichier my.ini dans le bloc-notes
Étape 3 :Une fois le fichier ouvert, recherchez la ligne qui se lit comme suit
[mysqld]
Assurez-vous que la ligne de saut de réseau est commentée (ou supprimez la ligne) et ajoutez la ligne suivante
bind-address=YOUR-SERVER-IP
Par exemple, si l'adresse IP de votre serveur MySQL est 173.234.21.12, le bloc entier ressemblera à ceci :
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/English bind-address = 173.234.21.12 # skip-networking ....
Où,
- adresse de liaison :adresse IP à laquelle se lier.
- ignorer la mise en réseau :N'écoutez pas du tout les connexions TCP/IP. Toutes les interactions avec mysqld doivent se faire via des sockets Unix. Cette option est fortement recommandée pour les systèmes où seules les requêtes locales sont autorisées. Puisque vous devez autoriser la connexion à distance, cette ligne doit être supprimée de my.cnf ou commentée.
Étape 4 :Enregistrer et fermer le fichier
Sur Debian/Ubuntu Linux, tapez la commande suivante pour redémarrer le serveur mysql :
# /etc/init.d/mysql restart
Sur RHEL / CentOS / Fedora / Scientific Linux, tapez la commande suivante pour redémarrer le serveur mysql :
# /etc/init.d/mysqld restart
Sous Windows, ouvrez l'invite de commande en tant qu'administrateur et tapez
net stop MySQL net start MySQL
Étape 5 :Accordez l'accès à l'adresse IP distante
Accorder l'accès à une nouvelle base de données
Si vous souhaitez ajouter une nouvelle base de données appelée foo pour la barre d'utilisateurs et l'adresse IP distante 162.72.20.23, vous devez saisir les commandes suivantes à l'invite mysql :
mysql> CREATE DATABASE foo; mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';
Accorder l'accès à une base de données existante
Supposons que vous établissez toujours une connexion depuis une adresse IP distante appelée 162.72.20.23 vers une base de données appelée webdb pour l'utilisateur webadmin. Pour accorder l'accès à cette adresse IP pour la base de données existante, tapez la commande suivante à l'invite mysql :
mysql> update db set Host='162.72.20.23' where Db='webdb'; mysql> update user set Host='162.72.20.23' where user='webadmin';
Étape 6 :Déconnexion de MySQL
Tapez la commande exit pour vous déconnecter de mysql :
mysql> exit
Étape 7 :Ouvrez le port 3306
Un exemple de règle iptables pour ouvrir le pare-feu iptables Linux
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
OU n'autoriser la connexion à distance qu'à partir de votre serveur Web situé au 162.72.20.23 :
/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT
OU autorisez uniquement la connexion à distance depuis votre sous-réseau LAN 192.168.1.0/24 :
/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT
Enfin enregistrez toutes les règles (commande spécifique RHEL/CentOS) :
# service iptables save
Sous Windows, accédez à Panneau de configuration > Pare-feu Windows > Ajouter une règle de trafic entrant pour le port 3306
Étape 8 :Tester l'accès à distance à la base de données MySQL
Depuis votre système distant ou votre bureau, tapez la commande suivante :
$ mysql -u webadmin –h 173.234.21.12 –p
Sous Windows, exécutez le programme de ligne de commande MySQL et connectez-vous en tant qu'administrateur en saisissant la commande suivante à partir du dossier racine MySQL (par exemple, Program Files\MySQL\MySQL Server 5.5\bin) :
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u webadmin –h 173.234.21.12 –p
Où,