Comment permettre des connexions distantes à MySQL

Comment permettre des connexions distantes à MySQL

Si vous travaillez avec une base de données MySQL, vous êtes déjà conscient des défis auxquels vous êtes confronté pour garder votre base de données sécurisée. Des tentatives de piratage de base de données utilisant des injections SQL aux attaques de force brute, il est difficile de protéger vos données, surtout si vous travaillez avec une base de données à distance.

Il existe des moyens de configurer un serveur SQL pour autoriser les connexions distantes, mais vous devez être prudent, car permettre aux connexions distantes sur un serveur MySQL puisse faire de votre base de données une cible facile pour les pirates. Si vous souhaitez autoriser des connexions à distance sécurisées à une base de données MySQL, voici ce que vous aurez besoin de savoir.

Table des matières

    Ce guide vous mènera à travers les étapes pour configurer MySQL pour permettre des connexions distantes, mais vous devrez vous assurer d'avoir un accès direct ou à distance au serveur hébergeant d'abord votre serveur MySQL.

    Supposons que vous n'ayez pas d'accès à distance à votre serveur via SSH (par exemple). Dans ce cas, vous ne pourrez pas configurer votre base de données MySQL pour permettre les connexions distantes directement à moins que votre compte MySQL racine ne permette déjà des connexions à distance. Vous devrez donc établir cette connexion avant de pouvoir continuer.

    Édition de votre fichier de configuration MySQL

    La première étape de la configuration de MySQL pour permettre des connexions distantes consiste à modifier votre fichier de configuration MySQL. À ce stade, ce guide supposera que vous vous êtes déjà connecté au serveur, au PC ou au Mac hébergeant votre base de données MySQL à distance et que vous avez accès à la console.

    Alternativement, vous pouvez configurer un serveur MySQL local à l'aide d'un terminal ouvert sur Mac ou Linux ou un éditeur de texte sur Windows.

    1. Pour démarrer, utilisez votre éditeur de texte de console préféré pour modifier votre fichier de base de données MySQL. Sur linux, tapez sudo nano / etc / mysql / mysql.confli.d / mysqld.CNF dans un terminal ou une fenêtre SSH pour modifier ce fichier en utilisant le nano Éditeur (en supposant que votre base de données MySQL est à l'emplacement par défaut).
    1. Si vous exécutez Windows, ouvrez File Explorer et accédez au dossier contenant votre installation MySQL (par exemple. C: / / Program Files / MySQL / MySQL Server 8.0). Ouvrir le mon.ini Fichier à l'aide de votre éditeur de texte par défaut (par exemple. Bloc-notes) en double-cliquant sur l'entrée. Si ce n'est pas là, créez d'abord le fichier.
    1. Sur Mac, ouvrez une fenêtre de terminal et type sudo nano / usr / local / etc / mon.CNF. Il s'agit du fichier de configuration par défaut pour MySQL si vous avez installé MySQL à l'aide de Homebrew.

    Les emplacements référencés ci-dessus sont les emplacements par défaut pour les fichiers de configuration MySQL. Si ces commandes ne fonctionnent pas, vous devrez rechercher les fichiers pertinents (mon.CNF, mysqld.CNF, ou mon.ini) manuellement pour localiser le chemin du fichier pertinent.

    Définition d'une plage IP de liaison sécurisée

    1. Une fois que vous avez ouvert le fichier de configuration MySQL pour votre serveur, utilisez la touche flèche de votre clavier pour atteindre le adhésion à la liaison Section du fichier. Cette plage IP limite les connexions à votre base de données, qui est généralement définie pour permettre les connexions uniquement de la machine ou du serveur local en utilisant 127.0.0.1.
    1. Si vous souhaitez configurer votre base de données MySQL pour autoriser les connexions à partir des appareils à l'aide de votre connexion Internet actuelle, trouvez d'abord votre adresse IP publique, puis remplacez 127.0.0.1 avec cette adresse IP. Alternativement, remplacez-le par une adresse IP pour l'appareil ou le serveur que vous souhaitez autoriser les connexions à partir de.
    1. Dans certaines circonstances, vous souhaiterez peut-être permettre tous Connexions distantes à une base de données MySQL. Cela porte risque extrême et ne devrait pas être utilisé sur un serveur de production. Si vous voulez autoriser cela, cependant, remplacez 127.0.0.1 avec 0.0.0.0.
    1. Notez le port valeur dans le Paramètres de base section. Cela sera nécessaire dans la section suivante. S'il n'est pas visible, la valeur par défaut sera utilisée, qui est le port 3306. Vous pouvez ajouter votre propre port en tapant port = xxxx sur une nouvelle ligne, en remplaçant xxxx avec une valeur de port appropriée.
    1. Une fois que vous avez configuré le adhésion à la liaison Dans votre fichier de configuration MySQL, enregistrez le fichier. Si vous êtes sur Linux, sélectionnez Ctrl + o et Ctrl + x pour faire ça. Sur Mac, sélectionnez Commande + O et Commande + x. Les utilisateurs de Windows peuvent enregistrer en sélectionnant Déposer > Sauvegarder.
    1. Ensuite, les utilisateurs de Linux et Mac peuvent redémarrer MySQL en tapant mysql.SERVER STOP && mysql.Démarrer du serveur ou mysql.redémarrage du serveur. Vous devrez peut-être élever la commande en utilisant Sudo (par exemple. sudo mysql.redémarrage du serveur) et utiliser le chemin approprié vers le mysql.fichier de serveur (par exemple. / usr / local / bin / mysql.serveur).
    1. Si la commande ci-dessus ne fonctionne pas, essayez service sudo mysql redémarrage plutôt.
    1. Pour redémarrer MySQL sur Windows, ouvrez une nouvelle fenêtre PowerShell en cliquant avec le bouton droit sur le menu de démarrage et en sélectionnant Windows PowerShell (Admin). Dans la fenêtre PowerShell, tapez net stop mysql80 suivie par net start mysql80, remplacement mysql80 avec le nom de service correct sur votre PC.

    Si vous n'êtes pas sûr du nom de service correct sur Windows, tapez net start pour le trouver.Si vous ne pouvez pas recharger votre configuration, redémarrez votre serveur et rechargez manuellement MySQL (si nécessaire).

    Configuration de vos pare-feu

    À ce stade, votre base de données MySQL devrait permettre des connexions distantes à partir des appareils à l'aide de l'adresse IP que vous définissez comme le adhésion à la liaison Valeur dans votre fichier de configuration MySQL (ou à partir de tous les appareils si vous définissez cette valeur sur 0.0.0.0 plutôt). Cependant, les connexions seront toujours bloquées par votre pare-feu d'appareil ou de réseau.

    La plupart des serveurs et des PC utilisent un pare-feu pour bloquer les connexions à moins que l'accès à un port spécifique ne soit accordé. Les étapes pour configurer cela varieront, selon que vous exécutez MySQL sur Windows ou Linux. Les pare-feu Mac sont désactivés par défaut, vous ne devriez donc pas avoir besoin de suivre des étapes supplémentaires ici.

    Configurer les pare-feu Linux

    De nombreux serveurs Linux utilisent iptables Comme l'utilitaire de pare-feu par défaut. Vous pouvez le configurer en suivant les étapes ci-dessous.

    1. Ouvrez un terminal ou une connexion SSH sudo iptables -a entrée -p tcp -s x.X.X.X -dport yyyy -j accepter. Remplacer X.X.X.X Avec l'adresse IP de l'appareil, vous souhaitez autoriser les connexions MySQL depuis, et remplacer Yyyy avec la valeur du port correspondant à partir de votre fichier de configuration MySQL (par exemple. 3306).
    1. Cela configurera temporairement le pare-feu temporaire. Si vous utilisez un serveur Linux de Debian ou Ubuntu, rendez ce changement permanent en tapant Sudo NetFilter-Persistent Save et SUDO NETFILTER Persistent Rechargement dans le terminal ou la fenêtre SSH.

    Si Iptables n'est pas l'outil de pare-feu par défaut pour votre distribution Linux, vous devrez consulter le manuel d'utilisation de votre distribution pour plus d'informations. Si certains packages (comme netfilter) ne sont pas disponibles, utilisez l'outil de référentiel logiciel de votre distribution pour l'installer (par exemple. sudo apt installer netfilter-persistant).

    Configurer les pare-feu Windows

    Si vous utilisez un PC Windows ou un serveur pour héberger votre base de données, vous pouvez configurer votre pare-feu à l'aide de ces étapes:

    1. Cliquez avec le bouton droit sur le menu Démarrer et sélectionnez Courir.
    1. Dans le Courir boîte, tape wf.MSC et sélectionner D'ACCORD.
    1. Dans le Windows Defender fenêtre, sélectionnez Règles entrantes > Nouvelle règle.
    1. Dans le Nouveau assistant de règle entrante fenêtre, sélectionnez Port > Suivant.
    1. Au menu suivant, sélectionnez TCP à partir des options, tapez 3306 (ou quelle que soit la valeur de port répertoriée dans votre fichier de configuration MySQL), puis sélectionnez Suivant.
    1. Au Action menu, laissez l'option par défaut Autoriser la connexion activé, puis sélectionnez Suivant.
    1. Confirmez que vous souhaitez que la règle s'applique à tous les types de réseau, puis sélectionnez Suivant.
    1. Tapez un nom descriptif pour la règle (par exemple. Mysql) Dans le port fourni, puis sélectionnez Finir Pour l'ajouter à votre liste de règles de pare-feu.

    Si vous avez du mal à vous connecter, répétez ces étapes ci-dessus, en vous assurant de créer un nouveau règle sortante Dans vos paramètres de pare-feu en utilisant les mêmes détails (port 3306, etc.). Vous devrez peut-être également configurer votre routeur de réseau local pour ouvrir les ports bloqués nécessaires pour permettre des connexions entrantes et sortantes à votre base de données. 

    Connexion à un serveur distant à l'aide de MySQL

    Après avoir configuré votre base de données MySQL pour permettre des connexions distantes, vous devrez réellement établir une connexion à elle. Vous pouvez le faire en utilisant le mysql commande (mysql.exe sur les fenêtres) à partir d'un terminal ou d'une fenêtre PowerShell.

    Si vous exécutez des fenêtres, vous devrez vous assurer que MySQL est installé localement avant de commencer. Les utilisateurs de Mac peuvent installer MySQL à l'aide de Homebrew à partir du terminal (Brew Installer MySQL), tandis que les utilisateurs de Linux peuvent utiliser leur référentiel d'applications local (par exemple. sudo apt installer mysql) Pour installer les packages nécessaires.

    Connexion à MySQL sur Linux ou Mac

    1. Pour vous connecter à votre serveur MySQL distant sur Mac ou Linux, ouvrez une nouvelle fenêtre de terminal et tapez MySQL -U Nom d'utilisateur -h x.X.X.X: xxxx -p. Remplacer X.X.X.X: xxxx avec votre adresse IP de serveur distant et votre numéro de port (par exemple. 100.200.100.200: 3306) et nom d'utilisateur avec votre nom d'utilisateur mysql.
    1. Lorsque vous êtes invité, confirmez votre mot de passe. Si la connexion réussit, un message de réussite apparaît dans le terminal.

    Connexion à MySQL sur Windows

    1. Pour vous connecter à un serveur MySQL distant sur Windows, ouvrez une nouvelle fenêtre PowerShell en cliquant avec le bouton droit sur le menu de démarrage et en sélectionnant Windows PowerShell (Admin).
    1. Dans la nouvelle fenêtre PowerShell, tapez CD «C: \ Program Files \ mysql \ mysql workbench 8.0 \«Pour saisir le dossier correct, en remplaçant ce répertoire par le répertoire d'installation correct sur votre PC. Par exemple, si votre version de MySQL est 8.0.1, utilisez le Mysql workbench 8.0.1 dossier à la place.
    1. De là, Type .\ mysql.exe -u nom d'utilisateur -h x.X.X.X: xxxx -p. Remplacer X.X.X.X: xxxx avec votre adresse IP de serveur distant et votre numéro de port (par exemple. 100.200.100.200: 3306) et nom d'utilisateur avec un nom d'utilisateur MySQL qui permet un accès à distance (comme racine). Suivez toutes les instructions supplémentaires à l'écran.
    2. Fournissez votre mot de passe, une fois invité, à terminer le processus de connexion et à accéder à votre base de données MySQL à distance.

    Si cela ne fonctionne pas, connectez-vous au serveur ou au PC hébergeant votre serveur MySQL à l'aide de SSH (ou accédez-y directement) en utilisant ces étapes et en utilisant le -h localhost argument. Vous pouvez ensuite créer un compte utilisateur approprié en suivant les étapes ci-dessous.

    Autoriser l'accès à distance aux utilisateurs à une base de données MySQL

    À ce stade, vous devriez être en mesure de vous connecter à votre serveur MySQL à distance en utilisant le compte d'utilisateur racine de votre serveur ou un autre compte d'utilisateur avec des privilèges élevés. Comme ce niveau d'accès est dangereux, vous préférez peut-être créer un compte plus restreint pour accéder à votre base de données MySQL.

    Ce compte aura un accès limité à votre serveur MySQL, ce qui lui permet d'interagir avec uniquement des bases de données sélectionnées. Il ne pourra pas apporter des changements plus graves, comme l'accès à d'autres données de base de données, la création de nouveaux comptes d'utilisateurs, etc.

    Vous devrez avoir la possibilité de vous connecter à votre serveur MySQL à distance. Si vous ne pouvez pas utiliser votre compte racine à distance, vous devrez accéder au shell de votre serveur à l'aide du mysql Commande via une connexion SSH distante ou en accédant directement au PC ou au serveur hébergeant le serveur.

    1. Dans votre shell mysql éloigné (en utilisant le mysql outil), type Créer un "nom d'utilisateur" @ "x.X.X.x ”identifié par« mot de passe »; et sélectionner Entrer. Remplacer nom d'utilisateur avec le nom d'utilisateur que vous souhaitez créer, X.X.X.X avec l'adresse IP dont vous souhaitez vous connecter, et mot de passe avec un mot de passe approprié.
    1. Vous devrez accorder votre nouveau compte avec les autorisations nécessaires. Pour ce faire, tapez Accorder tout sur Databasename.* Au nom d'utilisateur @ ”x.X.X.X"; et remplacer databasename, nom d'utilisateur, et X.X.X.X avec les bons détails. Si vous le souhaitez, remplacez nom de la base de données avec * Pour lui accorder un accès à toutes les bases de données.

    Avec l'accès accordé, utilisez les étapes de la section ci-dessus pour vous connecter à votre serveur à distance en utilisant votre nouveau compte (par exemple. MySQL -U Nom d'utilisateur -h x.X.X.X: xxxx -p).

    Sécuriser vos données de base de données

    Que vous travailliez avec MySQL ou un autre type de base de données SQL, il est important de garder vos connexions sécurisées pour maintenir votre sécurité de données. Une bonne façon de le faire est de générer des clés SSH pour l'accès à distance à votre serveur, plutôt que de compter sur des mots de passe obsolètes (et facilement supposables).

    Si vous vous inquiétez de la perte de données, vous pouvez facilement sauvegarder votre base de données en ligne. La plupart des bases de données sont exécutées à l'aide de serveurs Linux, vous pouvez facilement automatiser une sauvegarde du fichier Linux. Si vous exécutez MySQL sur Windows, vous pouvez configurer un système de sauvegarde automatique similaire pour Windows, vous permettant de restaurer vos données en cas d'urgence.