vi

MongoDB VPS: NoSQL Database Trên VPS Offshore

MongoDB là NoSQL database document-oriented phổ biến nhất, lý tưởng cho ứng dụng cần lưu trữ dữ liệu linh hoạt, JSON-native và horizontal scaling. Chạy MongoDB trên VPS offshore của AnubizHost cho bạn toàn quyền kiểm soát version, configuration và không bị giới hạn bởi Atlas free tier hay pricing của managed MongoDB services.

Need this done for your project?

We implement, you ship. Async, documented, done in days.

Start a Brief

Cài Đặt MongoDB trên VPS

Cài đặt MongoDB 7.0 từ repository chính thức:

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc |     gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ]     https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" |     tee /etc/apt/sources.list.d/mongodb-org-7.0.list

apt update
apt install -y mongodb-org
systemctl enable mongod
systemctl start mongod
mongosh --version

Bật Authentication và Tạo Admin User

MongoDB mặc định không có authentication - cần bật ngay:

mongosh
use admin
db.createUser({
  user: "mongoAdmin",
  pwd: "StrongAdminPassword123!",
  roles: [{ role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase"]
})

Bật authentication trong mongod.conf:

nano /etc/mongod.conf
security:
  authorization: enabled

net:
  port: 27017
  bindIp: 127.0.0.1
systemctl restart mongod

Tạo user cho application:

mongosh -u mongoAdmin -p --authenticationDatabase admin
use myapp_db
db.createUser({
  user: "appuser",
  pwd: "AppPassword456!",
  roles: [{ role: "readWrite", db: "myapp_db" }]
})

Kết Nối từ Ứng Dụng Node.js

Connection string với authentication:

const mongoose = require('mongoose');

const MONGODB_URI = process.env.MONGODB_URI ||
  'mongodb://appuser:AppPassword456!@localhost:27017/myapp_db?authSource=myapp_db';

mongoose.connect(MONGODB_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  serverSelectionTimeoutMS: 5000,
  maxPoolSize: 10,
})
.then(() => console.log('MongoDB connected'))
.catch(err => console.error('MongoDB connection error:', err));

Luôn sử dụng biến môi trường trong production:

# .env
MONGODB_URI=mongodb://appuser:AppPassword456!@localhost:27017/myapp_db?authSource=myapp_db

Backup và Restore MongoDB

Backup với mongodump:

mkdir -p /var/backups/mongodb
mongodump   --uri="mongodb://mongoAdmin:StrongAdminPassword123!@localhost:27017/admin"   --out=/var/backups/mongodb/dump-$(date +%Y%m%d)
tar czf /var/backups/mongodb/dump-$(date +%Y%m%d).tar.gz   /var/backups/mongodb/dump-$(date +%Y%m%d)/

Restore từ backup:

mongorestore   --uri="mongodb://mongoAdmin:StrongAdminPassword123!@localhost:27017/admin"   /var/backups/mongodb/dump-20260515/

Cron job backup hàng ngày lúc 2 giờ sáng:

0 2 * * * mongodump --uri="mongodb://mongoAdmin:pass@localhost/admin"   --out=/var/backups/mongodb/dump-$(date +%Y%m%d) &&   find /var/backups/mongodb -name "dump-*" -mtime +14 -exec rm -rf {} ;

Why Anubiz Host

100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included

Ready to get started?

Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.

Anubiz Chat AI

Online