This commit is contained in:
2026-04-25 11:20:14 +02:00
parent ee47a6f06b
commit 3adc69cb89
14 changed files with 308 additions and 24 deletions
+76
View File
@@ -0,0 +1,76 @@
#!/bin/bash
# Script d'installation et de configuration de MariaDB
# Utilisation : source mariadb_config.sh && ./install_mariadb.sh
ENV_FILE="../test_tube_scanner/.env"
source $ENV_FILE
# Vérifie que le fichier de configuration est sourcé
if [ -z "$DATABASE_ROOT_PASSWORD" ] || [ -z "$DATABASE_NAME" ] || [ -z "$DATABASE_USER" ] || [ -z "$DATABASE_PASSWORD" ]; then
echo "Erreur : Les variables de configuration ne sont pas définies."
echo "Sourcez le fichier de configuration avant d'exécuter ce script :"
echo " source mariadb_config.sh && ./install_mariadb.sh"
exit 1
fi
# Mise à jour des paquets
echo "[1/6] Mise à jour des paquets..."
sudo apt update && sudo apt upgrade -y
# Installation de MariaDB
echo "[2/6] Installation de MariaDB..."
sudo apt install -y mariadb-server
# Sécurisation de MariaDB (désactive l'accès root à distance, supprime les bases de test, etc.)
echo "[3/6] Sécurisation de MariaDB..."
sudo mariadb_secure_installation <<EOF
n
y
$DATABASE_ROOT_PASSWORD
$DATABASE_ROOT_PASSWORD
y
y
y
y
EOF
# Création de la base de données, de l'utilisateur et attribution des droits
echo "[4/6] Configuration de la base de données '$DATABASE_NAME' et de l'utilisateur '$DATABASE_USER'..."
sudo mariadb -u root -p"$DATABASE_ROOT_PASSWORD" <<EOF
CREATE DATABASE IF NOT EXISTS $DATABASE_NAME;
CREATE USER IF NOT EXISTS '$DATABASE_USER'@'localhost' IDENTIFIED BY '$DATABASE_PASSWORD';
GRANT ALL PRIVILEGES ON $DATABASE_NAME.* TO '$DATABASE_USER'@'localhost';
FLUSH PRIVILEGES;
EOF
# Autoriser l'accès à distance (optionnel, si nécessaire)
# Remplace '%' par une IP spécifique pour plus de sécurité
echo "[5/6] Autorisation de l'accès à distance pour '$DATABASE_USER' (optionnel)..."
sudo mariadb -u root -p"$DATABASE_ROOT_PASSWORD" <<EOF
CREATE USER IF NOT EXISTS '$DATABASE_USER'@'%' IDENTIFIED BY '$DATABASE_PASSWORD';
GRANT ALL PRIVILEGES ON $DATABASE_NAME.* TO '$DATABASE_USER'@'%';
FLUSH PRIVILEGES;
EOF
# Redémarrage du service MariaDB
echo "[6/6] Redémarrage du service MariaDB..."
sudo systemctl restart mariadb
sudo systemctl enable mariadb
# Vérification du statut
echo "Statut du service MariaDB :"
sudo systemctl status mariadb --no-pager
# Affichage des informations de connexion
echo ""
echo "=== Configuration terminée ==="
echo "Base de données : $DATABASE_NAME"
echo "Utilisateur : $DATABASE_USER"
echo "Mot de passe : $DATABASE_PASSWORD"
echo ""
echo "Pour te connecter à MariaDB :"
echo " mariadb -u $DATABASE_USER -p$DATABASE_PASSWORD $DATABASE_NAME"