MariaDBDans la configuration par défaut, le serveur de bases de données MariaDB permet les connexions sur l’hôte local. Actuellement j’ai une demande un peu particulière d’un de mes clients. Le cahier des charges stipule un serveur MariaDB qui tourne dans une VM sous Linux, et accessible dans le réseau local depuis un client Windows.

Pour tester cette configuration, j’ai un réseau de machines virtuelles sur ma station de travail, que je pilote avec Vagrant et KVM :

  • Le serveur MariaDB est installé sur host-01.sandbox.lan (10.23.45.10).
  • Le client MariaDB doit se connecter depuis host-02.sandbox.lan (10.23.45.20).
  • Le client non privilégié myreportuser est censé se connecter à la base myreport.

Configurer le pare-feu

La pare-feu du serveur est géré par FirewallD. Les connexions à MySQL et son fork libre MariaDB se font sur le port 3306. À la limite, ce n’est même pas la peine de mémoriser ce port, puisque FirewallD comporte une configuration explicite pour le service :

# firewall-cmd --permanent --add-service=mysql
success
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: mysql ssh
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

Reconfigurer MariaDB

Dans sa configuration actuelle, MariaDB autorise les seules connexions sur la boucle locale (localhost). Pour accepter les connexions sur d’autres interfaces réseau, il faut éditer le fichier /etc/my.cnf.d/mariadb-server.cnf et décommenter la directive bind-address comme ceci :

bind-address=0.0.0.0

Redémarrer le service pour prendre en compte les modifications :

# systemctl restart mariadb

Créer l’utilisateur MariaDB

Sur mon serveur, je dispose d’une base de données myreport :

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myreport           |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.000 sec)

Je crée un utilisateur non privilégié myreportuser qui est censé se connecter depuis l’hôte host-02.sandbox.lan à cette base. Attention, le mot de passe défini apparaîtra en clair dans le moniteur MariaDB lors de la saisie :

MariaDB [(none)]> grant all on myreport.*
    -> to 'myreportuser'@'host-02.sandbox.lan'
    -> identified by '**********';
Query OK, 0 rows affected (0.001 sec)

ImportantNotez la syntaxe un peu spéciale avec les apostrophes qui entourent aussi bien la partie utilisateur myreportuser que la partie hôte host-02.sandbox.lan. Le moniteur MariaDB vous renvoie une erreur si vous ne les utilisez pas.

Voici les deux utilisateurs définis sur le serveur :

MariaDB [(none)]> use mysql;
...
Database changed
MariaDB [mysql]> select user, host, password from user;
+--------------+---------------------+-------------------------------------------+
| user         | host                | password                                  |
+--------------+---------------------+-------------------------------------------+
| root         | localhost           | *F424CF5D03C9AAE965E86FBF001AAB078229EDEB |
| myreportuser | host-02.sandbox.lan | *6883418C147A759B04D78A2D1E4E0C5BB0CDD1B4 |
+--------------+---------------------+-------------------------------------------+
2 rows in set (0.000 sec)

Connexion à distance

Sur mon poste client host-02.sandbox.lan je vérifie si je dispose bien d’un client MariaDB :

$ rpm -q mariadb
mariadb-10.3.35-1.module+el8.6.0+1005+cdf19c22.x86_64

Je me connecte à ma base sur host-01.sandbox.lan :

$ mysql -u myreportuser -p -h host-01.sandbox.lan
Enter password: **********
Welcome to the MariaDB monitor.  
...
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myreport           |
+--------------------+
2 rows in set (0.001 sec)

Et le tour est joué.

Lire la suite : Sauvegarder et restaurer une base de données MariaDB


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *