Désactiver le préchargeur
Explorez, Apprenez et Maîtrisez

Documentation et Tutoriels - Hébergement Web Caramania.Ca

avec Nos Documentation et Tutoriels

Découvrez notre vaste bibliothèque de documentation et de tutoriels conçus pour vous aider à tirer le meilleur parti des services Caramania.Ca. Que vous soyez un débutant cherchant à configurer votre premier site web ou un utilisateur avancé désireux d'explorer des fonctionnalités plus complexes, nos guides pas à pas vous accompagneront à chaque étape. Simplifiez la gestion de vos services, trouvez des solutions rapides à vos problèmes, et approfondissez vos connaissances grâce à notre centre de ressources complet.

Documentation / Tutoriels Linux / Bases de données / Installer MongoDB sur Ubuntu, Debian et AlmaLinux
Bahanos
09/01/2025
Intermédiaire
20 minutes

Prérequis

  • Un serveur Ubuntu 22.04/24.04 ou Debian 11/12
  • Accès root ou sudo
  • Minimum 2 Go de RAM

MongoDB est une base de données NoSQL orientée documents. Idéale pour les applications modernes nécessitant flexibilité et scalabilité, notamment avec Node.js.

1. Installer MongoDB

Installation MongoDB 8.0 (Ubuntu/Debian)
# Importer la clé GPG
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg

# Ajouter le dépôt (Ubuntu 22.04)
echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-8.0.list

# Installer MongoDB
apt update
apt install -y mongodb-org

# Démarrer et activer
systemctl start mongod
systemctl enable mongod

# Vérifier
systemctl status mongod
mongod --version
Installation MongoDB 8.0 (AlmaLinux/Rocky Linux)
# Créer le fichier de dépôt MongoDB
cat > /etc/yum.repos.d/mongodb-org-8.0.repo << 'EOF'
[mongodb-org-8.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/8.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-8.0.asc
EOF

# Installer MongoDB
dnf install -y mongodb-org

# Démarrer et activer
systemctl start mongod
systemctl enable mongod

# Vérifier
systemctl status mongod
mongod --version

2. Se connecter à MongoDB

Connexion avec mongosh
# Se connecter au shell MongoDB
mongosh

# Ou avec une URI
mongosh "mongodb://localhost:27017"

3. Créer un utilisateur administrateur

Commandes MongoDB
// Se connecter à la base admin
use admin

// Créer un administrateur
db.createUser({
  user: "admin",
  pwd: "mot_de_passe_admin_securise",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" },
    "clusterAdmin"
  ]
})

// Quitter
exit

4. Activer l'authentification

Sécuriser MongoDB
# Éditer la configuration
nano /etc/mongod.conf

# Ajouter/modifier dans la section security :
security:
  authorization: enabled

# Redémarrer MongoDB
systemctl restart mongod
Se connecter avec authentification
# Maintenant il faut s'authentifier
mongosh -u admin -p --authenticationDatabase admin

# Ou avec l'URI complète
mongosh "mongodb://admin:mot_de_passe@localhost:27017/admin"

5. Créer une base et un utilisateur applicatif

Créer une base pour votre application
// Se connecter en admin
use admin
db.auth("admin", "mot_de_passe_admin")

// Créer la base de données (créée automatiquement à l'insertion)
use mon_application

// Créer un utilisateur pour cette base
db.createUser({
  user: "app_user",
  pwd: "mot_de_passe_app",
  roles: [
    { role: "readWrite", db: "mon_application" }
  ]
})

// Tester en insérant un document
db.utilisateurs.insertOne({
  nom: "Test",
  email: "test@example.com",
  date_creation: new Date()
})

// Vérifier
db.utilisateurs.find()

6. Commandes MongoDB utiles

Commandes courantes
// Lister les bases
show dbs

// Utiliser une base
use ma_base

// Lister les collections
show collections

// Insérer un document
db.ma_collection.insertOne({ nom: "exemple" })

// Trouver des documents
db.ma_collection.find()
db.ma_collection.find({ nom: "exemple" })

// Mettre à jour
db.ma_collection.updateOne(
  { nom: "exemple" },
  { $set: { actif: true } }
)

// Supprimer
db.ma_collection.deleteOne({ nom: "exemple" })

// Compter
db.ma_collection.countDocuments()

// Supprimer une collection
db.ma_collection.drop()

// Supprimer une base
db.dropDatabase()

7. Autoriser les connexions distantes

Configuration réseau
# Éditer mongod.conf
nano /etc/mongod.conf

# Modifier la section net :
net:
  port: 27017
  bindIp: 0.0.0.0  # Écouter sur toutes les interfaces

# Redémarrer
systemctl restart mongod

# Ouvrir le port (limitez à des IP spécifiques !)
ufw allow from 192.168.1.0/24 to any port 27017
Configuration réseau (AlmaLinux/Rocky Linux)
# Ouvrir le port (limitez à des IP spécifiques !)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="27017" accept'
firewall-cmd --reload
Sécurité critique

N'exposez JAMAIS MongoDB sur Internet sans authentification ! Les bases MongoDB non sécurisées sont régulièrement piratées et leurs données supprimées.

8. Backup et Restore

Sauvegarde et restauration
# Exporter une base
mongodump --db mon_application --out /backup/

# Exporter avec authentification
mongodump --db mon_application -u admin -p mot_de_passe --authenticationDatabase admin --out /backup/

# Exporter en archive compressée
mongodump --db mon_application --archive=/backup/mon_app.archive --gzip

# Restaurer
mongorestore --db mon_application /backup/mon_application/

# Restaurer depuis archive
mongorestore --archive=/backup/mon_app.archive --gzip

9. Script de sauvegarde automatique

Backup quotidien
cat > /opt/mongo_backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/var/backups/mongodb"
DATE=$(date +%Y-%m-%d)
KEEP_DAYS=7

mkdir -p $BACKUP_DIR

# Backup de toutes les bases
mongodump --archive=$BACKUP_DIR/mongodb-$DATE.archive --gzip

# Supprimer les vieux backups
find $BACKUP_DIR -type f -mtime +$KEEP_DAYS -delete

echo "Backup completed: $BACKUP_DIR/mongodb-$DATE.archive"
EOF

chmod +x /opt/mongo_backup.sh

# Ajouter au cron
(crontab -l 2>/dev/null; echo "0 3 * * * /opt/mongo_backup.sh") | crontab -

10. Connexion depuis Node.js

Exemple avec mongoose
// npm install mongoose
const mongoose = require('mongoose');

// URI de connexion
const uri = 'mongodb://app_user:mot_de_passe@localhost:27017/mon_application';

mongoose.connect(uri)
  .then(() => console.log('Connecté à MongoDB'))
  .catch(err => console.error('Erreur de connexion:', err));

// Définir un schéma
const userSchema = new mongoose.Schema({
  nom: String,
  email: String,
  date_creation: { type: Date, default: Date.now }
});

const User = mongoose.model('User', userSchema);
MongoDB installé !

Votre base de données MongoDB est prête. Elle est particulièrement adaptée aux applications JavaScript/Node.js et aux données non structurées.

💬 Écrivez-nous sur Messenger !