Installez, sécurisez et configurez un serveur MySQL ou MariaDB sur votre serveur Linux : exécution de mysql_secure_installation, encodage UTF8MB4 et création de l'utilisateur dédié.
Le système de gestion de bases de données relationnelles le plus populaire du web.
Script indispensable supprimant les comptes anonymes et la base test par défaut.
Support natif de tous les alphabets internationaux et des émojis sans troncature.
Création d'un utilisateur non-root restreint à la seule base de données du projet.
# 1. Installer le serveur MySQL sur Ubuntu/Debian $ sudo apt update && sudo apt install -y mysql-server # 2. Exécuter le script d'assainissement de sécurité officiel $ sudo mysql_secure_installation # -> Activer le plugin de validation de mot de passe ? Oui (Fort) # -> Supprimer les utilisateurs anonymes ? Oui # -> Interdire la connexion root à distance ? Oui # -> Supprimer la base de données test ? Oui # -> Recharger les tables de privilèges ? Oui # 3. Se connecter en root et créer la base de production et son utilisateur $ sudo mysql -u root -- Dans l'invite mysql> : CREATE DATABASE app_production CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'CleRobuste_987#Securite!'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON app_production.* TO 'app_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
utf8 de MySQL n'utilisait que 3 octets par caractère. utf8mb4 résout définitivement ce problème. 'app_user'@'localhost' : L'utilisateur n'a le droit de se connecter que si la requête provient de la machine locale. C'est le réglage parfait si l'API Node et MySQL tournent sur le même VPS.'app_user'@'%' : L'utilisateur peut se connecter depuis n'importe quelle adresse IP du monde. À proscrire formellement en production sans filtrage réseau strict !| Privilège SQL | Nécessaire en Production ? | Rôle |
|---|---|---|
| SELECT, INSERT, UPDATE, DELETE | Oui (Obligatoire) | Opérations courantes de lecture et d'écriture de l'application |
| CREATE, ALTER, INDEX | Oui (Si migrations automatiques) | Permet aux ORMs (Prisma, TypeORM) de modifier la structure |
| DROP TABLE | À évaluer prudemment | Suppression de tables obsolètes lors de migrations |
| SUPER, SHUTDOWN, GRANT OPTION | NON (Strictement interdit) | Réservé au compte root pour l'administration système |