Mysql
 sql >> Base de données >  >> RDS >> Mysql

Activer l'accès à distance à la base de données MySQL

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ù,