GNU/Linux >> Tutoriels Linux >  >> Linux

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

L'écosystème logiciel n'est pas nouveau dans la notion de systèmes distribués. Vous n'avez pas besoin d'être physiquement présent pour interagir avec votre logiciel hébergé à distance.

Par conséquent, votre MySQL n'a pas besoin de résider sur une machine locale pour que vous profitiez pleinement de ses fonctionnalités. Vous pouvez désormais exécuter MySQL sur un serveur dédié distant tout en garantissant la même sécurité et les mêmes performances de base de données que dans le cas d'un MySQL exécuté sur une machine locale/de bureau.

Ce guide d'article nous guidera à travers la configuration et l'activation de l'accès à distance à un MySQL serveur sous Linux. Sur le serveur/machine distant hébergeant votre MySQL logiciel de base de données, nous devons effectuer quelques étapes de configuration pour qu'il autorise l'accès des utilisateurs distants authentifiés.

Créer un nouvel utilisateur MySQL

Il est conseillé de travailler avec un utilisateur distant qui n'est ni root MySQL utilisateur ni lié au serveur distant hébergeant MySQL logiciel de base de données.

Accédez à votre MySQL distant serveur et base de données via SSH .

$ ssh [email protected]
$ mysql -u root -p

Pour créer un nouvel utilisateur MySQL, nous respecterons la syntaxe de commande :

CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';

Comme vous l'avez noté, nous utilisons la notation 'nom d'utilisateur'@'%' et non 'nom d'utilisateur'@'localhost' puisque nous voulons que cet utilisateur soit suffisamment dynamique pour accéder à MySQL serveur à partir de n'importe quelle autre machine hôte avec une adresse IP différente.

mysql> CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password1122';

Accordons à cet utilisateur des privilèges de base de données. Par exemple, cet utilisateur peut avoir les mêmes privilèges de base de données que l'utilisateur root uniquement si l'utilisateur root est lié à la machine hôte.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;

[ Vous pourriez également aimer :Comment créer un nouvel utilisateur MySQL via phpMyAdmin ]

Activer l'accès MySQL à distance

Maintenant que nous avons créé l'utilisateur distant, il est temps d'effectuer quelques modifications de configuration supplémentaires. Par défaut, l'adresse de liaison MySQL est 127.0.0.1 ce qui implique que seuls les utilisateurs localhost peuvent interagir avec la base de données MySQL.

Pour donner accès aux adresses IP d'autres utilisateurs à votre serveur de base de données, naviguez et ouvrez le fichier fichier de configuration MySQL.

 
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
OR
$ sudo vi /etc/my.cnf

Pour autoriser l'accès à distance à votre serveur de base de données MySQL, les champs bind-address et mysqlx-bind-address doivent être commentés. Ces changements de configuration empêcheront le serveur hébergeant le logiciel de base de données MySQL de ne compter que sur les connexions localhost (127.0.0.1). Par la suite, n'importe quelle adresse IP sera autorisée à y accéder.

Enregistrez et fermez le fichier.

Redémarrez votre serveur MySQL, puis identifiez l'adresse IP du serveur MySQL.

$ sudo systemctl restart mysql
$ ifconfig

Tentative d'accès à distance à la base de données MySQL

Pour se connecter directement à MySQL serveur de base de données à distance, respectez la syntaxe MySQL suivante :

$ mysql -u username -h mysql_server_ip_adress -p

Dans notre cas, la commande ressemblera à ceci :

$ mysql -u remote_user -h 192.168.50.130 -p

Si vous rencontrez l'erreur ci-dessus comme illustré par la capture d'écran, vous devrez configurer votre utilisateur MySQL pour utiliser un mot de passe natif. Reconnectez-vous à votre serveur MySQL via SSH et implémentez la commande :

mysql> ALTER USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password1122'; 
mysql> exit;

Ensuite, quittez le shell de la base de données MySQL et redémarrez le démon MySQL.

$ sudo systemctl restart mysql

Réessayez d'accéder à distance à votre serveur MySQL.

$ mysql -u remote_user -h 192.168.50.130 -p

Et juste comme ça, vous pouvez accéder directement et à distance à un serveur de base de données MySQL à partir d'un ordinateur client distant configuré avec une adresse IP de votre choix.

Activer l'accès MySQL à distance dans le pare-feu

Si vous avez un pare-feu activé sur votre serveur distant, vous devrez peut-être accorder l'accès au port par défaut de MySQL 3306 et accordez l'accès à remote_ip_address comme indiqué.

Pare-feu UFW

$ sudo ufw allow from remote_ip_address to any port 3306

Pare-feuD

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

Iptables

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

C'est tout! Dans cet article, vous avez appris des informations utiles sur les idées courantes d'accès MySQL à distance sous Linux.


Linux
  1. Comment installer le serveur de base de données MySQL 8 sur CentOS 8

  2. Comment autoriser ou refuser la connexion à distance à des comptes d'utilisateurs spécifiques sur le serveur Linux

  3. Comment installer le serveur de base de données MySQL sur CentOS

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

  5. Comment configurer une base de données esclave MySQL

Comment vérifier les privilèges utilisateur MySQL sous Linux

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

Comment ajouter une base de données MySQL dans SolidCP ?

Comment ajouter une base de données MySQL dans WebsitePanel 2.1 ?

Comment mettre en place un accès MySQL distant sur cPanel ?

Hôtes d'accès supplémentaires MySQL