Recherche de site Web

MySQL : Autoriser tous les hôtes


Si vous souhaitez accéder à votre serveur MySQL à distance, il sera nécessaire de configurer un ou plusieurs utilisateurs pour permettre l’accès à partir d’hôtes distants. Si vous ne connaissez pas toutes les adresses IP des hôtes qui se connectent, vous pouvez simplement autoriser les connexions de tous les hôtes.

Dans ce tutoriel, nous allons vous expliquer étape par étape comment autoriser les connexions à distance à un serveur MySQL sur un système Linux à partir de tous les hôtes. Ces instructions doivent fonctionner indépendamment de la distribution Linux que vous utilisez.

Dans ce tutoriel, vous allez apprendre :

  • Comment autoriser les connexions à distance de tous les hôtes au compte MySQL
  • Comment autoriser les connexions à distance à MySQL via le pare-feu du système

MySQL : Autoriser tous les hôtes étape par étape

L’autorisation des connexions à distance à votre base de données MySQL est un processus en trois étapes.

Tout d’abord, nous devrons configurer le service MySQL pour qu’il soit accessible à partir de machines distantes en configurant une adresse de liaison publique dans le fichier de configuration MySQL. Nous avons un guide séparé pour ce processus, que vous devez suivre ici : MySQL : Autoriser les connexions à distance.

Deuxièmement, nous devrons autoriser l’accès à distance via le pare-feu de notre système. Par défaut, MySQL s’exécute sur le port 3306, donc les connexions à ce port devront être autorisées.

Troisièmement, nous devrons créer un nouvel utilisateur ou modifier un utilisateur existant pour le rendre accessible à partir de tous les hôtes distants.

Autoriser l’accès à distance via le pare-feu

En supposant que vous utilisez le port 3306 pour votre serveur MySQL, nous devrons l’autoriser via le pare-feu du système. La commande que vous devez exécuter va dépendre de la distribution que vous utilisez. Reportez-vous à la liste ci-dessous ou adaptez la commande si nécessaire pour respecter la syntaxe du pare-feu de votre propre système.

Sur les systèmes Ubuntu et autres qui utilisent ufw (pare-feu simple) :


sudo ufw allow mysql

Sur Red Hat, CentOS, Fedora et les systèmes dérivés qui utilisent firewalld :


sudo firewall-cmd --zone=public --add-service=mysql --permanent
sudo firewall-cmd --reload

Et la bonne vieille commande iptables qui devrait fonctionner sur n’importe quel système :


sudo iptables -A INPUT -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Autoriser les connexions à distance à un utilisateur particulier

Maintenant que le service MySQL peut accepter les connexions entrantes et que notre pare-feu les autorise, il nous suffit de configurer notre utilisateur pour accepter les connexions à distance.

  1. Commencez par ouvrir MySQL avec le compte root.

    
    sudo mysql
    

    Ou, sur certaines configurations, il peut vous être demandé d’entrer la commande suivante et de fournir votre mot de passe root :

    
    mysql -u root -p
    
  2. Si vous avez déjà créé un utilisateur et que vous devez configurer cet utilisateur pour qu’il soit accessible à partir de tous les hôtes, nous pouvons utiliser la commande MySQL RENAME USER. Nous rendrons notre utilisateur linuxconfig accessible à partir de tous les hôtes en utilisant le caractère générique % dans l’exemple de commande ci-dessous, mais nous l’adapterons si nécessaire à votre propre configuration.

    
    mysql> RENAME USER 'linuxconfig'@'localhost' TO 'linuxconfig'@'%';
    mysql> flush privileges;
    

    Ou, si vous créez cet utilisateur pour la première fois, nous utiliserons la commande CREATE USER. Assurez-vous de remplacer le nom d’utilisateur et le mot de passe suivants par les vôtres. Encore une fois, nous utiliserons % comme caractère générique qui représente tous les hôtes distants.

    
    mysql> CREATE USER 'linuxconfig'@'%' IDENTIFIED BY 'password_here';
    mysql> flush privileges;
    

C’est tout ce qu’il y a à faire. Après avoir accordé à votre utilisateur l’accès à une ou plusieurs bases de données, vous pourrez utiliser les informations d’identification du compte pour accéder à distance à la base de données à partir de tous les hôtes.

Réflexions finales

Dans ce tutoriel, nous avons vu comment autoriser les connexions à distance de tous les hôtes au service MySQL sur un système Linux. Il s’agissait d’un processus en trois parties visant à rendre le service accessible, à autoriser les connexions à travers le pare-feu et à rendre accessible un compte MySQL. Étant donné que MySQL fonctionne fondamentalement de la même manière sur toutes les distributions, ces étapes devraient être utilisables par tout le monde.

Articles connexes: