77 lines
2.5 KiB
Bash
Executable File
77 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
|
|
|
|
|
|
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"
|