Aller au contenu

AS213941 · Peering-20 % sur tous les VPS avec le code NVH20 · Livraison en 60 secondes

VPS LinuxDès 2,49 €/moisVPS WindowsDès 3,49 €/moisServeur FiveMDès 0,99 €/moisServeur MinecraftDès 1,99 €/mois
VPS & Cloud

Gammes

VPS Linux NVMeAccès root, Debian, Ubuntu, Alma…VPS Windows RDPBureau à distance, licence incluseServeurs dédiésIntel Xeon Gold, ressources exclusivesVPS PterodactylPanel de jeux préinstallé

Réseau et hébergement

Anti-DDoSHébergement webHousingTransit IPVPN

Professionnels

VPS revendeurProgramme revendeur
Solutions

Bots et automatisation

VPS agents IAUn serveur pour vos assistants de code et agents autonomesVPS OllamaVotre IA privée sans GPU, données en FranceVPS bot TelegramPython ou Node.js, toujours joignableVPS bot DiscordMusique, modération, tickets : sans interruptionVPS n8nWorkflows sans limite d'exécutionsVPS VPNUn tunnel chiffré qui sort par la FranceVPS web scrapingCollecte de données planifiée, IP dédiée

Trading

VPS ForexVos robots gèrent les positions la nuitVPS MetaTrader 4Plusieurs terminaux MT4 sur une machineVPS MetaTrader 5Forex, indices et actions dans MT5VPS NinjaTraderFutures et stratégies NinjaScriptVPS prop firmChallenges et comptes financés, terminal toujours en ligneVPS trading AfriqueMetaTrader à Paris, depuis le Maghreb ou l'Afrique de l'OuestVPS RDPBureau à distance Windows, toujours alluméVPS bot de tradingBots crypto open source, clés API protégées

Bureau Windows

VPS Windows 10Pour vos logiciels qui exigent Windows 10VPS Windows 11Le poste Windows récent, accessible partoutVPS SEOCrawls de gros sites sans bloquer votre PCVPS streamingUn studio OBS qui diffuse depuis le datacenterVPS WordPressSites rapides sur disque NVMe
Marketplace

Intelligence artificielle

OllamaDes modèles de langage locaux, sans API externeOpen WebUIUne interface de discussion pour vos modèles OllamaAnythingLLMAssistant IA privé sur vos documents (PDF, sites, notes) : espaces de travail, recherche…LangflowÉditeur visuel Langflow pour construire agents, flux RAG et API d'IA, protégé par votre…FlowiseCréez visuellement vos agents et chatbots IA (LangChain, RAG, outils) avec Flowise, votre…QdrantBase de données vectorielle Qdrant pour vos projets RAG et de recherche sémantique, API…

Trading

MetaTrader 5Terminal MetaTrader 5 officiel (MetaQuotes) installé en mode portable, raccourci sur le…MetaTrader 4Terminal MetaTrader 4 officiel (MetaQuotes) installé en mode portable, raccourci sur le…Pack VPS Forex (MT4 + MT5)MetaTrader 4 et MetaTrader 5 installés ensemble, chacun dans son dossier portable, VPS…NinjaTrader 8Plateforme NinjaTrader 8 avec ses prérequis (.NET 4.8, WebView2) : installée à partir du…FreqtradeRobot de trading crypto open source avec son interface FreqUI, installé en mode…Interactive Brokers TWS / IB GatewayTrader Workstation ou IB Gateway (pour l'API et les robots) d'Interactive Brokers…

Bots et agents

Claude CodeL'agent de code d'Anthropic, dans votre terminalCodex CLIL'agent de code d'OpenAI en ligne de commandeBot TelegramHébergez votre bot Telegram (Python, Node.js ou Bun) : votre code depuis Git ou une…Bot DiscordHébergez votre bot Discord (discord.py, discord.js, Bun…) : votre code depuis Git ou une…OpenClawAssistant IA personnel open source OpenClaw, actif 24 h/24 : discutez avec lui sur…Hermes AgentAgent IA autonome open source de Nous Research, avec mémoire et compétences qui…

Déploiement et automatisation

DockerLe moteur de conteneurs et Docker Composen8nVos automatisations, sans limite d'exécutionsPortainerGérez vos conteneurs Docker depuis le navigateurCoolifyDéployez vos applications depuis Git, sur votre serveurUptime KumaSurveillez vos sites et serveurs, alertes comprises

Sites et bases de données

WordPressLe CMS le plus utilisé, sur une pile Nginx rapideApache + PHP + MySQLServeur web prêt à héberger vos sites : Apache2, PHP et ses extensions courantes, MariaDB…MySQL (MariaDB)Serveur de base de données MariaDB compatible MySQL, avec votre base et votre…PleskPanel d'hébergement Plesk Obsidian installé avec ses composants recommandés : sites…NextcloudVotre cloud de fichiers, agenda et contacts

Réseau et sécurité

WireGuardVotre VPN chiffré, préinstallé en option payanteVaultwardenUn gestionnaire de mots de passe auto-hébergé

Serveurs de jeu

FiveMServeur FiveM (FXServer + txAdmin), MariaDB et phpMyAdmin installés et configurés, sous…MinecraftServeur Minecraft Java Edition clé en main : Paper, Purpur, Fabric, NeoForge, Forge ou…RustServeur Rust (Facepunch) avec LinuxGSM : mises à jour automatiques, redémarrage après…Counter-Strike 2Serveur Counter-Strike 2 dédié avec LinuxGSM (environ 60 Go à télécharger), jeton GSLT…PalworldServeur Palworld dédié avec LinuxGSM : nom, mot de passe, nombre de joueurs et mot de…ValheimServeur Valheim dédié avec LinuxGSM, protégé par mot de passe (exigé par le jeu)…
Gaming

Serveurs de jeux

Serveur FiveMtxAdmin, ESX, QBCoreServeur MinecraftJava, Bedrock, modpacksServeur RustOxide, Carbon, wipesServeur Nova-LifeRP Nova-Life: Amboise

Protection et outils

Anti-DDoS FiveMOutils gratuits
Ressources

Apprendre

DocumentationBlog

Assistance

ContactEngagement SLA
Voir les offres Espace client Peering · AS213941

Sécurité

Sécuriser MariaDB sur un VPS : écoute locale, droits minimaux et sauvegardes

Par Équipe NVHCloud 2026-09-18 Lecture : 5 min

Une base de données exposée sur Internet est l'une des premières choses que cherchent les robots : le port 3306 est scanné en permanence, et les bases laissées ouvertes avec un mot de passe faible sont vidées ou prises en otage. Ce guide installe MariaDB et le verrouille. Les commandes valent aussi pour MySQL, à quelques noms de fichiers près.

1. Installer et sécuriser l'installation

apt update && apt install -y mariadb-server
mariadb-secure-installation

Répondez ainsi aux questions :

  • Switch to unix_socket authentication : n si la question apparaît, car c'est déjà le cas sur Debian et Ubuntu.
  • Change the root password : n. Le compte root de MariaDB s'authentifie par le compte root du système, sans mot de passe réseau : c'est plus sûr qu'un mot de passe.
  • Remove anonymous users, Disallow root login remotely, Remove test database, Reload privilege tables : Y à chaque fois.

Connectez-vous ensuite en root du système avec la simple commande mariadb.

2. N'écouter qu'en local

Sur Debian et Ubuntu, MariaDB n'écoute par défaut que sur l'adresse locale. Vérifiez-le, car une modification passée ou une autre distribution peut l'avoir changé :

ss -tlnp | grep -E "3306|mariadbd|mysqld"

Vous devez voir 127.0.0.1:3306. Si vous voyez 0.0.0.0:3306 ou *:3306, corrigez dans /etc/mysql/mariadb.conf.d/50-server.cnf :

[mysqld]
bind-address = 127.0.0.1
skip-name-resolve
systemctl restart mariadb

skip-name-resolve évite une résolution DNS à chaque connexion : c'est plus rapide, et les comptes doivent alors être déclarés avec une adresse IP plutôt qu'un nom d'hôte. Si votre application tourne dans Docker, voyez le paragraphe sur Docker plus bas.

⚠️ Même avec un pare-feu, n'ouvrez jamais le port 3306 à tout Internet. Si une autre machine doit se connecter, utilisez un tunnel SSH ou WireGuard, ou à défaut une règle de pare-feu limitée à une adresse IP.

3. Un utilisateur par application

N'utilisez jamais le compte root dans une application. Créez une base et un utilisateur par site ou par serveur de jeu, avec les droits sur sa seule base :

CREATE DATABASE boutique CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'boutique'@'localhost' IDENTIFIED BY 'MOT_DE_PASSE_GENERE';
GRANT ALL PRIVILEGES ON boutique.* TO 'boutique'@'localhost';
FLUSH PRIVILEGES;

Générez les mots de passe avec openssl rand -base64 24. Si une application est compromise, l'attaquant n'atteint que sa propre base. Pour un outil qui ne fait que lire, comme un tableau de bord, limitez même les droits à SELECT.

Cas de Docker : un conteneur ne se connecte pas depuis localhost, mais depuis l'adresse du réseau Docker. Le plus simple est de faire tourner la base dans un conteneur du même fichier Compose, sans publier son port. Voir Docker et Docker Compose.

4. Auditer les comptes existants

Sur un serveur déjà en service, listez les comptes et l'origine d'où ils peuvent se connecter :

SELECT user, host FROM mysql.user ORDER BY user;

Tout compte dont la colonne host vaut % accepte les connexions depuis n'importe où. S'il n'est pas indispensable, supprimez-le ou limitez-le :

DROP USER 'ancien'@'%';
RENAME USER 'appli'@'%' TO 'appli'@'localhost';

Vérifiez aussi les droits d'un compte avec SHOW GRANTS FOR 'appli'@'localhost';. Un compte applicatif ne doit jamais avoir ALL PRIVILEGES ON *.*.

5. Accéder à distance sans exposer la base

Pour utiliser un outil graphique comme DBeaver, HeidiSQL ou MySQL Workbench depuis votre ordinateur, passez par un tunnel SSH : la base reste fermée à Internet.

ssh -N -L 3307:127.0.0.1:3306 alex@IP_DU_VPS

Tant que cette commande tourne, connectez votre logiciel à 127.0.0.1 sur le port 3307. La plupart des outils savent aussi créer ce tunnel eux-mêmes, dans un onglet « SSH » de la connexion.

6. Régler la mémoire

Le réglage qui compte le plus est innodb_buffer_pool_size, la mémoire où MariaDB garde les données et les index les plus utilisés. La valeur par défaut, 128 Mo, est trop faible dès que la base grossit. Sur un VPS qui héberge aussi le site ou le serveur de jeu, réservez-lui environ un quart de la RAM :

[mysqld]
innodb_buffer_pool_size = 1G     # pour un VPS de 4 Go
max_connections = 100

Pour estimer le besoin, comparez à la taille réelle de vos données :

SELECT ROUND(SUM(data_length + index_length) / 1024 / 1024) AS taille_mo
FROM information_schema.tables WHERE engine = 'InnoDB';

Inutile de dépasser cette taille, augmentée d'une marge de croissance.

7. Sauvegarder

Ne copiez pas les fichiers de /var/lib/mysql pendant que la base tourne : la copie serait incohérente. Exportez plutôt :

mariadb-dump --all-databases --single-transaction --routines --events | gzip > /var/backups/mariadb.sql.gz

--single-transaction produit un export cohérent sans bloquer les applications. Automatisez l'export et envoyez-le hors du serveur : voir sauvegardes avec Borg. Pour restaurer : gunzip -c mariadb.sql.gz | mariadb.

8. Mises à jour

Les versions de maintenance de MariaDB arrivent par les mises à jour normales du système. Si vous avez activé les mises à jour de sécurité automatiques décrites dans les premiers pas, elles s'installent seules. Avant de changer de version majeure, faites un export complet, puis lancez mariadb-upgrade après la mise à jour si elle ne l'a pas fait elle-même.

Questions fréquentes

Faut-il ouvrir le port 3306 pour qu'un site se connecte à sa base ?

Non, si le site et la base sont sur le même VPS : la connexion passe par l'adresse locale ou le socket, sans passer par le réseau. Le port 3306 ne doit être ouvert que pour une autre machine, et alors seulement pour son adresse IP ou à travers un VPN.

MariaDB ou MySQL ?

Les deux sont largement compatibles et conviennent à WordPress, FiveM ou la plupart des applications. MariaDB est la base fournie par défaut sur Debian et Ubuntu, ce qui simplifie l'installation et les mises à jour. Choisissez MySQL si une application exige explicitement une fonctionnalité propre à MySQL 8.

J'ai perdu le mot de passe root de MariaDB, que faire ?

Sur Debian et Ubuntu, le compte root de MariaDB s'authentifie par le système : connectez-vous en root sur le serveur et tapez simplement mariadb. Vous pouvez ensuite réinitialiser le mot de passe de n'importe quel compte avec ALTER USER.

Quelle valeur donner à innodb_buffer_pool_size ?

Sur un serveur dédié à la base, jusqu'à 70 % de la mémoire. Sur un VPS partagé avec un site ou un serveur de jeu, environ un quart de la RAM, sans dépasser la taille réelle des données plus une marge de croissance.

VPS Linux NVMe

Accès root, Intel Xeon Gold et NVMe, livré en 60 secondes. Dès 2,49 €/mois.