Installer MariaDB
MariaDB est un moteur relationnel compatible MySQL, idéal pour WordPress, PrestaShop ou applications PHP sur un VPS Linux HolyCloud. Ce guide installe MariaDB depuis les dépôts officiels, exécute le script de sécurisation, crée un utilisateur applicatif et limite l'exposition réseau.
Prérequis
- VPS HolyCloud Ubuntu 22.04/24.04 ou Debian 12
- Au moins 1 Go RAM (2 Go recommandé en production avec trafic)
- Accès sudo
- Snapshot HolyCloud avant modification de
bind-addressou ouverture de port 3306
Conseil : en production, laissez MariaDB en écoute sur
127.0.0.1uniquement ; exposez 3306 seulement via VPN ou IP autorisées.
Étape 1 : installation
sudo apt update
sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable --now mariadb
sudo systemctl status mariadb
Version installée :
mariadb --version
Étape 2 : sécurisation interactive
sudo mariadb-secure-installation
Réponses recommandées :
- Valider le plugin de validation de mot de passe si proposé (niveau
MEDIUMouSTRONG) - Définir un mot de passe fort pour root
- Supprimer les utilisateurs anonymes : Y
- Désactiver la connexion root à distance : Y
- Supprimer la base de test : Y
- Recharger les privilèges : Y
Étape 3 : connexion administrateur locale
sudo mariadb -u root -p
Dans le client SQL :
SELECT VERSION();
SHOW DATABASES;
EXIT;
Sur certaines installations Debian, root utilise le socket Unix sans mot de passe :
sudo mariadb
Étape 4 : créer une base et un utilisateur applicatif
Remplacez monapp, monapp_user et le mot de passe :
sudo mariadb <<'EOF'
CREATE DATABASE monapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'monapp_user'@'localhost' IDENTIFIED BY 'MotDePasseFortIci!';
GRANT ALL PRIVILEGES ON monapp.* TO 'monapp_user'@'localhost';
FLUSH PRIVILEGES;
EOF
Test :
mariadb -u monapp_user -p -h 127.0.0.1 monapp -e "SELECT 1 AS ok;"
Étape 5 : configuration réseau (bind-address)
Fichier principal (chemin selon version) :
sudo mariadb -e "SELECT @@datadir;"
ls /etc/mysql/mariadb.conf.d/
Éditez :
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Section [mysqld] :
bind-address = 127.0.0.1
skip-name-resolve
Pour autoriser une IP applicative distante (déconseillé sans pare-feu strict) :
CREATE USER 'monapp_user'@'10.0.0.5' IDENTIFIED BY 'MotDePasseFortIci!';
GRANT ALL PRIVILEGES ON monapp.* TO 'monapp_user'@'10.0.0.5';
sudo systemctl restart mariadb
Étape 6 : paramètres mémoire de base (petit VPS)
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Exemple pour 2 Go RAM :
[mysqld]
innodb_buffer_pool_size = 512M
max_connections = 100
sudo systemctl restart mariadb
Étape 7 : sauvegarde logique rapide
mysqldump -u monapp_user -p -h 127.0.0.1 monapp > /var/backups/monapp-$(date +%F).sql
gzip /var/backups/monapp-$(date +%F).sql
Automatisez via cron (voir « Tâches planifiées avec cron »).
Vérification
sudo systemctl is-active mariadb
sudo ss -tlnp | grep 3306
mariadb -u monapp_user -p -h 127.0.0.1 -e "SHOW TABLES FROM monapp;"
sudo mariadb -e "SELECT user, host FROM mysql.user WHERE user='monapp_user';"
ss doit montrer 127.0.0.1:3306 si vous avez restreint bind-address.
Besoin d'aide HolyCloud
- Access denied : utilisateur/host (
'user'@'localhost'vs'user'@'127.0.0.1') — recréez avec le bon host - MariaDB ne démarre pas :
sudo journalctl -u mariadb -n 50 --no-pager - Performances :
free -h, ajustezinnodb_buffer_pool_size(max ~70 % RAM disponible pour MySQL seul) - Support HolyCloud :
mariadb --version,df -h, extrait de log après échec de démarrage