Installation et configuration de MariaDB

Conditions d’installation "Conteneur Lxc"
L’installation est réalisée selon les critères suivants:
Le conteneur est un processus indépendant de son hôte, il utilise son propre système de manière isolé. Le fait qu'il soit "Unprivileged" veut dire que "normalement" il n'accède a aucune ressource de son hôte, L'utilisateur par défaut est "root" , il est possible de modifier ce fait , la manipulation n'est pas si aisée. "Nesting" autorise d'installer un autre conteneur a l’intérieur du conteneur. Pour finir, il est peut gourmand en ressource et du fait qu'il soit portable, il peut être déployer très rapidement...
- Proxmox PVE 8.3
- Conteneur "Unprivileged"
- Nesting: Oui
- Utilisateur : root
- Debian12
MariaDB est un système de gestion de base de données au mème titre que PostgreSQL. Cette plateforme est issue de la base de données MySQL, elle est éditée sous licence GPL [1]. MySQL a été racheté par Oracle, son créateur en a fait un "fork" et a permis ainsi la distribution libre de Maria DB.
Installation et paramétrage de MariaDB version 10
C'est extrêmement simple d'installer MariaDB.
# apt update && apt upgrade -y
# apt install mariadb-server -y
Ça s'est fait !
Bon maintenant, on va sécuriser l’ensemble :
# mariadb-secure-installation
- Entrez le mot de passe de root, validez si aucun mot de passe.
Enter current password for root (enter for none): #Validez!
- On demande si vous voulez utiliser le compte root du système ou si vous voulez en créer un propre à MariaDb [1]. On utilisera celui du système.
Switch to unix_socket authentication [Y/n]
Y #Oui
- On répond non, car vous utilisez votre mot de passe root de votre système.
Change the root password? [Y/n]
n #Non
- Désactiver les utilisateurs anonymes.
Remove anonymous users? [Y/n]
Y #Oui
- Desactiver l'accès root à distance.
Disallow root login remotely? [Y/n]
Y #Oui
Modification de l'accès a MariaDB
Pour qu'on puisse accéder à MariaDB à distance, il faut modifier l'adresse d’écoute qu'elle utilise par défaut : 127.0.0.1 et aussi ouvrir le port d'écoute qui est le 3306 par défaut.
Nous avons besoin de connaitre l'adresse IP locale de notre instance :
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0@if325: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether bc:24:11:c1:be:af brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.0.0.7/24 brd 10.0.0.255 scope global dynamic eth0
Nous avons notre IP, en l'occurrence pour l'exemple "10.0.0.7"
- Pour l'adresse, on ouvre le fichier suivant :
# nano /etc/mysql/mariadb.conf.d/50-server.cnf
Modifiez la ligne "bind-address =":
- Pour le port, ce sera celui-ci :
#sudo nano /etc/mysql/mariadb.cnf
Décommentez la ligne (en dessous de "client-server") pour ouvrir le port, vous pouvez également le changer à votre convenance :
Redémarrez le service :
# systemctl restart mysql
Attention si vous avez un pare-feu local, pensez a ouvrir le port 3306.
Création d'une base de données et d'un utilisateur
On va se connecter à MariaDb avec le compte root de votre Debian :
# mariadb -u root -p
On va créer une base de données, pour Le cms Ghost par exemple :
Attention, la Casse est importante et la ponctuation aussi !
CREATE DATABASE ghost;
Query OK, 1 row affected (0.000 sec
ça veut dire que c'est bon !
On va créer un utilisateur pour cette base de données :
Mon utilisateur pour l'exemple sera "userghost" et le mot de passe "ghost"
CREATE USER 'userghost'@'%' IDENTIFIED BY 'ghost';
Query OK, 0 rows affected (0.001 sec)
On va affecter notre utilisateur à la base de données "ghost" en lui attribuant tous les droits :
GRANT ALL ON `ghost`.* TO 'userghost'@'%';
Query OK, 0 rows affected (0.001 sec
On va en quelque sorte valider ce qu'on vient de faire en executant un "FLUSH", c'est une requête de validation des droits, dans notre cas notre utilsateur
sur la base de données "ghost" :
FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
On quitte :
MariaDB [(none)]> quit;
Bye
...En plus elle est polie ! 😃
Comme vous pouvez le voir, on a inscrit "%" à l'utilisateur afin de permettre la connexion de n'importe quel IP de votre réseau. Par sécurité, on pourrait la restreindre a l’IP concernée.
- On peut vérifier si l'accès fonctionne bien :
# mysql -u userghost -p -h 10.0.0.7 -P 3306
L'essentiel des commandes :
- Si on veut visualier la liste des bases de données :
# SHOW DATABASES;
- Si on veut lister les utilsateurs :
# SELECT User FROM mysql.user;
- Si on veut voir les privilèges d'un utilisateur, dans ce cas précis notre utilisateur a toutes les permissions sur la base de donnée "ghost" :
#SHOW GRANTS FOR 'userghost'@'10.0.0.7';
- Si on veut retirer tous les privilèges à cet utilisateur :
# REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'userghost'@'10.0.0.7';
- Si on veut supprimer la base de données:( notre exemple) :
# DROP DATABASE ghost;
- Si on veut supprimer l’utilisateur (notre exemple) :
# DROP USER userghost;
(on peut juste taper le nom)
C'est terminé !
