Retourner sur le site

Installer MariaDB

Installez MariaDB sur un VPS HolyCloud, sécurisez l'installation, créez utilisateurs et bases, et configurez l'accès local pour vos applications.

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-address ou ouverture de port 3306

Conseil : en production, laissez MariaDB en écoute sur 127.0.0.1 uniquement ; 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 MEDIUM ou STRONG)
  • 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, ajustez innodb_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