GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment autoriser les connexions à distance à MySQL

Présentation

Il n'est pas rare d'héberger des bases de données et des serveurs Web sur la même machine locale. Cependant, de nombreuses organisations évoluent désormais vers un environnement plus distribué.

Un serveur de base de données distinct peut améliorer la sécurité, les performances matérielles et vous permettre d'adapter rapidement les ressources. Dans de tels cas d'utilisation, apprendre à gérer efficacement les ressources distantes est une priorité.

Ce didacticiel vous montre comment activer les connexions à distance à une base de données MySQL.

Prérequis

  • Accès à une fenêtre de terminal/ligne de commande
  • Serveur MySQL distant
  • Sudo ou racine privilèges sur les machines locales et distantes

Connexion à distance au serveur MySQL

L'autorisation des connexions à un serveur MySQL distant se configure en 3 étapes :

  1. Modifier le fichier de configuration MySQL
  2. Configurer le pare-feu
  3. Se connecter au serveur MySQL distant

Étape 1 :Modifier le fichier de configuration MySQL

1.1 Accéder au fichier mysqld.cnf

Utilisez votre éditeur de texte préféré pour ouvrir le mysqld.cnf dossier. Cet exemple utilise l'éditeur de texte nano dans Ubuntu 18.04. Entrez la commande suivante dans votre interface de ligne de commande pour accéder au fichier de configuration du serveur MySQL :

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

L'emplacement du fichier peut varier en fonction de la distribution et de la version utilisée. Si le fichier de configuration MySQL n'est pas son emplacement par défaut, essayez d'utiliser Linux find commande pour le détecter.

1.2 Modifier l'adresse IP de liaison

Vous avez maintenant accès au fichier de configuration du serveur MySQL. Faites défiler jusqu'à bind-address ligne et modifiez l'adresse IP. L'adresse IP par défaut actuelle est définie sur 127.0.0.1. Cette IP limite les connexions MySQL à la machine locale.

La nouvelle adresse IP doit correspondre à l'adresse de la machine qui doit accéder au serveur MySQL à distance. Par exemple, si vous liez MySQL à 0.0.0.0, toute machine qui atteint le serveur MySQL peut également s'y connecter.

Une fois que vous avez apporté les modifications nécessaires, enregistrez et quittez le fichier de configuration.

1.3 Redémarrer le service MySQL

Appliquez les modifications apportées au fichier de configuration MySQL en redémarrant le service MySQL :

sudo systemctl restart mysql

Ensuite, vos paramètres de pare-feu actuels doivent être ajustés pour autoriser le trafic vers le port MySQL par défaut.

Étape 2 :Configurer le pare-feu pour autoriser la connexion MySQL à distance

Lors de la modification du fichier de configuration, vous avez probablement remarqué que le port MySQL par défaut est 3306 .

Si vous avez déjà configuré un pare-feu sur votre serveur MySQL, vous devez ouvrir le trafic pour ce port spécifique. Suivez les instructions ci-dessous qui correspondent à votre service de pare-feu utilisé.

Option 1 :UFW (pare-feu simple)

UFW est l'outil de pare-feu par défaut d'Ubuntu. Dans une fenêtre de terminal, tapez la commande suivante pour autoriser le trafic et faire correspondre l'IP et le port :

sudo ufw allow from remote_ip_address to any port 3306

Le système confirme que les règles ont été mises à jour avec succès.

Option 2 :Pare-feuD

L'outil de gestion de pare-feu dans CentOS utilise des zones pour dicter le trafic à autoriser.

Créez une nouvelle zone pour définir les règles du trafic du serveur MySQL. Le nom de la zone dans notre exemple est mysqlrule , et nous avons utilisé l'adresse IP de notre exemple précédent 133.155.44.103 :

sudo firewall-cmd --new-zone=mysqlrule --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlrule --add-source=133.155.44.103
sudo firewall-cmd --permanent --zone=mysqlrule --add-port=3306/tcp
sudo firewall-cmd --reload

Vous avez réussi à ouvrir le port 3306 sur votre pare-feu.

Option 3 :ouvrir le port 3306 avec iptables

Les iptables L'utilitaire est disponible sur la plupart des distributions Linux par défaut. Tapez la commande suivante pour ouvrir le port MySQL 3306 au trafic illimité :

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Pour limiter l'accès à une adresse IP spécifique, utilisez plutôt la commande suivante :

sudo iptables -A INPUT -p tcp -s 133.155.44.103 --dport 3306 -j ACCEPT

Cette commande accorde l'accès à 133.155.44.103. Vous devrez la remplacer par l'adresse IP de votre connexion à distance.

Il est nécessaire de sauvegarder les modifications apportées aux règles iptables. Dans une distribution basée sur Ubuntu, tapez les commandes suivantes :

sudo netfilter-persistent save
sudo netfilter-persistent reload

Tapez la commande suivante pour enregistrer les nouvelles règles iptables dans CentOS :

service iptables save

Étape 3 :Connectez-vous au serveur MySQL distant

Votre serveur distant est maintenant prêt à accepter les connexions. Utilisez la commande suivante pour établir une connexion avec votre serveur MySQL distant :

mysql -u username -h mysql_server_ip -p

Le -u username dans la commande représente votre nom d'utilisateur MySQL. Le -h mysql_server_ip est l'adresse IP ou le nom d'hôte de votre serveur MySQL. Le -p L'option vous invite à saisir le mot de passe du nom d'utilisateur MySQL.

Vous devriez voir une sortie similaire à celle ci-dessous :

Connection to mysql_server_ip 3306 port [tcp/mysql] succeeded!

Comment accorder un accès à distance à une nouvelle base de données MySQL ?

Si vous n'avez pas encore de bases de données, vous pouvez facilement créer une base de données en tapant la commande suivante dans votre shell MySQL :

CREATE DATABASE ‘yourDB’;

Pour accorder à un utilisateur distant l'accès à une base de données spécifique :

GRANT ALL PRIVILEGES ON yourDB.* TO [email protected]’133.155.44.103’ IDENTIFIED BY ‘password1’;

Le nom de la base de données, le nom d'utilisateur, l'adresse IP distante et le mot de passe doivent correspondre aux informations que vous souhaitez utiliser pour la connexion à distance.

Comment accorder un accès à distance à une base de données MySQL existante

L'octroi d'un accès à distance à un utilisateur pour une base de données existante nécessite un ensemble de deux commandes :

update db set Host=’133.155.44.103' where Db='yourDB';
update user set Host=’133.155.44.103' where user='user1';

Utilisateur1 est maintenant en mesure d'accéder à votreDB depuis un emplacement distant identifié par l'IP 133.155.44.103 .


Ubuntu
  1. Comment réinitialiser le mot de passe root MySql

  2. Comment installer MySQL 8.0 / 5.7 sur Debian 11 / Debian 10

  3. Comment installer le serveur MySQL sur CentOS 7

  4. Comment installer MySQL sur Ubuntu 16.04

  5. Comment autoriser la connexion à distance au serveur de base de données MySQL

Comment autoriser les connexions à distance à MySQL

Comment installer MySQL 8 sur CentOS 8

Comment installer le serveur MySQL dans Ubuntu

Comment autoriser l'accès à distance au serveur de base de données MySQL

Comment autoriser la connexion à distance au serveur MySQL dans cPanel/WHM Server ?

Comment installer le serveur MySQL sur Ubuntu 20.04