Files
PlanarianScanner/etc/4-install_mariadb.sh
2026-05-30 08:31:26 +02:00

75 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# Script d'installation et de configuration de MariaDB
# Utilisation : source mariadb_config.sh && ./install_mariadb.sh
source ../test_tube_scanner/.env
# 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"