Installer et utiliser MariaDB
MariaDB est un système de gestion de base de données open source, créé par les fondateurs de MySQL.
MariaDB et MySQL sont très utilisés pour stocker des données pour les sites Web et les applications.
Dans cette séance, nous allons apprendre à installer et à utiliser MariaDB sur Linux.
Notions théoriques
Installation sous Windows
Pour installer le serveur MariaDB sous Windows, il suffit de télécharger le programme d'installation sur le site https://mariadb.org/download/ et de lancer l'installation :
Installation sous Linux
- Installation de MariaDB :
Pour installer le serveur MariaDB sous Linux, nous utilisons les commandes :
sudo apt update
.sudo apt install mariadb-server
.
-
Démarrage du service MariaDB : Après l'installation, nous devons démarrer le service MariaDB en utilisant la commande
sudo service mariadb start
.astuceCes 2 commandes sont équivalentes :
sudo service mariadb start
sudo systemctl start mariadb -
Connexion à MariaDB : Nous pouvons nous connecter à MariaDB en utilisant la commande
sudo mysql
.
Il existe 2 méthodes pour se connecter à MariaDB (ou MySQL).
-
avec un compte utilisateur enregistré dans MariaDB (ou MySQL) :
mysql -u nom_utilisateur -p
Cette commande demande de saisir le mot de passe de l'utilisateur enregistré dans le serveur de base de données.
-
avec le compte super-utilisateur du système (
root
) :sudo mysql
Cette commande demande de resaisir le mot de passe de l'utilisateur connecté au système Linux.
-
Création d'une base de données : Pour créer une base de données, nous utilisons la commande
CREATE DATABASE nom_de_la_base;
. -
Sélection d'une base de données : Pour utiliser une base de données, nous utilisons la commande
USE nom_de_la_base;
. -
Création d'une table : Pour créer une table dans une base de données, nous utilisons la commande :
CREATE TABLE nom_de_la_table (nom_colonne1 type, nom_colonne2 type, ...);
Par exemple,
CREATE TABLE utilisateurs (nom VARCHAR(100), email VARCHAR(100));
crée une table appeléeutilisateurs
avec deux colonnes :nom
etemail
. -
Insertion de données : Pour insérer des données dans une table, nous utilisons la commande :
INSERT INTO nom_de_la_table (nom_colonne1, nom_colonne2, ...) VALUES (valeur1, valeur2, ...);
Par exemple,
INSERT INTO utilisateurs (nom, email) VALUES ('Léa Dupont', 'lea.dupont@example.com');
insère une ligne dans la tableutilisateurs
. -
Affichage des données : Pour afficher les données d'une table, nous utilisons la commande :
SELECT * FROM nom_de_la_table;
Par exemple,
SELECT * FROM utilisateurs;
affiche toutes les lignes de la tableutilisateurs
.
Connexions possibles client/serveur
Exemple pratique
Supposons que nous voulions créer une base de données pour stocker les informations de nos utilisateurs.
Nous allons installer MariaDB, créer une base de données appelée utilisateurs
et une table infos
pour stocker les noms et les emails de nos utilisateurs. Ensuite, nous insérerons quelques données et les afficherons.
# Installation de MariaDB
sudo apt install mariadb-server
# Démarrage du service MariaDB
sudo service mariadb start
# Connexion à MariaDB
sudo mysql
# ou
mysql -u root -p
# Création de la base de données 'utilisateurs'
CREATE DATABASE utilisateurs;
# Sélection de la base de données 'utilisateurs'
USE utilisateurs;
# Création de la table 'infos' avec les champs 'nom' et 'email'
CREATE TABLE infos (
nom VARCHAR(100),
email VARCHAR(100)
);
# Insertion de quelques données dans la table 'infos'
INSERT INTO infos (nom, email) VALUES ('Léa Dupont', 'lea.dupont@example.com');
INSERT INTO infos (nom, email) VALUES ('Marie Dupont', 'marie.dupont@example.com');
# Affichage des données de la table 'infos'
SELECT * FROM infos;
Après avoir exécuté la dernière commande, vous devriez voir quelque chose comme ceci :
+-------------+-------------------------+
| nom | email |
+-------------+-------------------------+
| Léa Dupont | lea.dupont@example.com |
| Marie Dupont| marie.dupont@example.com|
+-------------+-------------------------+
Cela signifie que nos données ont été correctement insérées et que nous pouvons les récupérer à partir de notre base de données.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Objectif du TP
À la fin de ce TP, vous devriez être capable de créer une base de données MariaDB, créer une table, insérer des données dans cette table et afficher ces données.
Étapes du TP
-
Connectez-vous à MariaDB en tant qu'utilisateur root.
-
Créez une nouvelle base de données nommée
ecole
. -
Utilisez la base de données
ecole
. -
Créez une nouvelle table nommée
etudiants
avec les colonnes suivantes :id
(entier, clé primaire, auto-incrément),nom
(chaîne de caractères de 100 caractères maximum),prenom
(chaîne de caractères de 100 caractères maximum), etemail
(chaîne de caractères de 100 caractères maximum).Voici le script SQL pour créer la table :
CREATE TABLE etudiants (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100),
prenom VARCHAR(100),
email VARCHAR(100)
); -
Insérez les données suivantes dans la table
etudiants
:nom
: Dupont,prenom
: Léa,email
: lea.dupont@example.comnom
: Martin,prenom
: Marie,email
: marie.martin@example.comnom
: Leclerc,prenom
: Pierre,email
: pierre.leclerc@example.com
-
Affichez toutes les données de la table
etudiants
.
Une solution
Vous devez être connecté pour voir le contenu.
Réflexion sur la sécurité
Il est essentiel de garder constamment à l'esprit les pratiques de sécurité lors de l'utilisation de MariaDB.
Voici quelques points à mettre en œuvre pour sécuriser votre installation :
-
Créer un utilisateur dédié :
- Au lieu d'utiliser le compte
root
pour accéder à votre base de données, créez un utilisateur dédié avec des privilèges limités. Cela réduit les risques d'erreurs accidentelles ou d'attaques potentielles. - Pour créer un utilisateur, utilisez la commande suivante :
CREATE USER 'utilisateur-ecole'@'localhost' IDENTIFIED BY 'votre_mot_de_passe';
- Au lieu d'utiliser le compte
-
Accorder des privilèges spécifiques :
- Accordez uniquement les privilèges nécessaires à cet utilisateur pour la base de données en question. Par exemple, pour permettre à l'utilisateur d'accéder à la base de données
ecole
, utilisez :GRANT ALL PRIVILEGES ON ecole.* TO 'utilisateur-ecole'@'localhost';
- Limitez les privilèges en fonction des besoins. Par exemple, si l'utilisateur n'a besoin que de lire des données, vous pouvez utiliser :
GRANT SELECT ON ecole.* TO 'utilisateur-ecole'@'localhost';
- Accordez uniquement les privilèges nécessaires à cet utilisateur pour la base de données en question. Par exemple, pour permettre à l'utilisateur d'accéder à la base de données
-
Sécuriser l'accès à la base de données :
-
Assurez-vous que votre serveur MariaDB est configuré pour n'accepter que les connexions locales, sauf si cela est absolument nécessaire. Cela peut être vérifié/modifié dans le fichier de configuration de MariaDB (
/etc/mysql/mariadb.conf.d/50-server.cnf
).Comment contrôler l'accès à votre serveur de base de données ?
Le paramètre
bind-address
dans le fichier de configuration de MariaDB détermine l'adresse IP sur laquelle le serveur MariaDB écoute les connexions entrantes.Il est essentiel pour contrôler l'accès à votre serveur de base de données et pour des raisons de sécurité.
Fonctionnement
-
Valeur par défaut : Par défaut,
bind-address
est souvent défini sur127.0.0.1
, ce qui signifie que MariaDB n'acceptera que les connexions provenant de la machine locale (localhost). Cela est recommandé pour les environnements de développement ou lorsque vous ne souhaitez pas exposer votre base de données à d'autres machines. -
Écoute sur toutes les interfaces : Si vous souhaitez que MariaDB écoute sur toutes les interfaces réseau de votre serveur (c'est-à-dire sur toutes les adresses IP), vous pouvez définir
bind-address
sur0.0.0.0
. Cela permettra aux connexions provenant de n'importe quelle adresse IP de se connecter à votre serveur MariaDB. Cependant, cette configuration peut présenter des risques de sécurité si elle n'est pas accompagnée de mesures de sécurité appropriées, comme un pare-feu ou des contrôles d'accès. -
Configuration spécifique : Vous pouvez également spécifier une adresse IP particulière (par exemple,
192.168.1.100
) si vous souhaitez restreindre les connexions à une interface réseau spécifique.
Modification
Pour modifier le paramètre
bind-address
, suivez ces étapes :- Ouvrez le fichier de configuration avec un éditeur de texte :
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
- Recherchez la ligne contenant
bind-address
et modifiez-la selon vos besoins. Par exemple :
bind-address = 0.0.0.0
-
Enregistrez vos modifications et fermez l'éditeur.
-
Redémarrez le service MariaDB pour appliquer les changements :
sudo service mariadb restart
Conclusion
Le paramètre
bind-address
est un élément clé pour gérer l'accessibilité de votre serveur MariaDB.En le configurant correctement, vous pouvez renforcer la sécurité de votre base de données tout en permettant les connexions nécessaires.
astuceAssurez-vous de toujours évaluer les implications de sécurité lorsque vous modifiez le paramètre
bind-address
. -
-
Utilisez des pare-feu pour restreindre l'accès à votre serveur MariaDB uniquement aux adresses IP de confiance.
-
-
Mettre à jour régulièrement :
- Gardez votre installation MariaDB à jour avec les dernières versions et correctifs de sécurité pour éviter les vulnérabilités connues.
-
Sauvegardes régulières :
- Effectuez des sauvegardes régulières de vos bases de données pour éviter la perte de données en cas d'incident.
-
Audit des connexions et des activités :
- Mettez en place des mesures pour surveiller et auditer les connexions à votre base de données, afin de détecter toute activité suspecte.