Connecter une base de données MySQL distante à l'aide de la ligne de commande

Mehvish Ashiq 16 février 2024
Connecter une base de données MySQL distante à l'aide de la ligne de commande

Les connexions à distance sont nécessaires lorsque nous travaillons dans un environnement distribué. Ce didacticiel est un guide étape par étape qui explique comment connecter une base de données MySQL distante à l’aide de la ligne de commande.

Connecter une base de données MySQL distante à l’aide de la ligne de commande

Avant de continuer, il est nécessaire d’avoir d’abord quelques éléments : l’accès à la ligne de commande ou à la fenêtre du terminal et à un serveur MySQL exécuté sur un autre emplacement (un serveur MySQL distant).

Nous aurons également besoin des privilèges root ou sudo sur les machines distantes et locales. Vous pouvez également utiliser ssh pour vous connecter à distance si vous n’avez pas d’accès direct au serveur MySQL.

Vous pouvez utiliser cet article si vous souhaitez vous connecter en utilisant ssh.

Ce tutoriel vous guidera dans l’établissement d’une connexion à distance avec une base de données MySQL à l’aide d’une ligne de commande. Il comprend les étapes suivantes.

  1. Éditez le fichier MySQL config
  2. Configurez le pare-feu pour autoriser les connexions à distance
  3. Autoriser la connexion root à distance
  4. Connectez-vous à un serveur MySQL distant

Voici le détail de chaque étape.

Editer le fichier MySQL config

Utilisez la commande suivante pour ouvrir le fichier config dans un éditeur de texte. Nous utilisons un éditeur de texte nano, mais vous pouvez utiliser n’importe quel éditeur de texte avec lequel vous vous sentez à l’aise.

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

Supposons que nous ayons oublié ou ne connaissions pas le chemin du fichier config, alors nous pouvons utiliser la commande [find](https://phoenixnap.com/kb/guide-linux-find-command pour connaître l’emplacement du fichier config. Une fois le fichier config ouvert, recherchez la section [mysqld](https://phoenixnap.com/kb/guide-linux-find-command.

Sous la section [mysqld], recherchez bind-address et changez sa valeur de 127.0.0.1 à 0.0.0.0 ou commentez cette ligne en utilisant le symbole #.

Quelle est la raison de la mise à jour de l’option bind-address ? En raison des paramètres par défaut, nous pouvons nous connecter à ce serveur en utilisant une machine locale dont l’adresse IP est 127.0.0.1.

Nous permettons à toutes les machines de se connecter à distance à ce serveur en commentant cette option à l’aide du symbole # ou en remplaçant sa valeur par 0.0.0.0.

Si nous ne voulons qu’une seule machine connectée à distance, nous pouvons écrire l’adresse IP de notre machine hôte au lieu de 0.0.0.0. Une fois que nous avons terminé les modifications, enregistrez-les et quittez le fichier.

Pour appliquer les mises à jour, redémarrez le serveur MySQL à l’aide de la commande suivante.

sudo systemctl restart mysql

Configurer le pare-feu pour autoriser les connexions à distance

Lors de la configuration de bind-address dans le fichier config, vous avez peut-être remarqué que le port MySQL par défaut est 3306. Ici, nous allons ajuster les paramètres pour autoriser le trafic distant vers le port par défaut de MySQL, qui est 3306.

Avant d’ouvrir le trafic, nous devons configurer le pare-feu correctement. Une fois cela fait, nous pouvons utiliser la commande ci-dessous pour ouvrir le trafic pour ce port particulier.

Puisque nous utilisons Ubuntu 20.04, nous utiliserons ufw (pare-feu simple).

sudo ufw allow from your_remote_ip_address to any port 3306

Dès que nous appuyons sur Enter, nous verrons que les règles sont mises à jour avec succès.

Autoriser la connexion root à distance

En raison de ses paramètres par défaut, nous pouvons nous connecter à root en utilisant une machine locale. Nous devons apporter quelques modifications pour permettre aux machines distantes de se connecter en tant que root.

Pour ce faire, utilisez les commandes suivantes.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
mysql> UPDATE mysql.user SET host='%' WHERE user='root';

Ensuite, redémarrez le serveur MySQL en utilisant systemctl comme suit.

sudo systemctl restart mysql

Se connecter à un serveur MySQL distant

Une fois que le serveur MySQL distant est prêt à accepter les connexions à distance, nous pouvons utiliser la commande suivante pour établir une connexion avec notre serveur MySQL distant.

mysql -u your_username -h your_mysql_server_ip -p

Ici, remplacez your_username par votre nom d’utilisateur et your_mysql_server_ip par votre adresse IP. Vous pouvez également utiliser le hostname de votre serveur MySQL.

Le -p vous demandera d’entrer le mot de passe pour le nom d’utilisateur que vous avez utilisé dans la commande donnée ci-dessus.

Vous serez enfin connecté à un serveur MySQL distant si vous avez tout fait correctement. Pour accorder l’accès à distance à une base de données, nous pouvons exécuter les requêtes suivantes.

mysql> update db set Host='ip_address' where
    -> Db='yourDB_name';

mysql> update user set Host='ip_address' where
    -> user='username';

Remplacez le username, Host et Db par les valeurs que vous avez spécifiées. Après cela, vous pouvez maintenant accéder à la base de données spécifiée à partir d’un emplacement distant.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Article connexe - MySQL Database