Hiện nay mongodb đang được sử dụng rộng rải vì tốc độ truy xuất dữ liệu nhanh, tính tùy biến dữ liệu vì nó là NoSql database. MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh.
Từ cửa sổ lệnh của ssh chúng ta gõ lệnh "mongo" để khởi động mongodb shell
mongo
// nếu sử dụng mongodb > 6
mongosh
use Database_name
Database_name là tên của database muốn tạo.
Để xóa được database của mongodb chúng ta cần sử dụng những lệnh sau:
use Database_name
db.dropDatabase()
Ở lệnh sao lưu database của mongodb chúng ta không cần phải vào mongodb shell mà sử dụng trực tiếp ở cửa sổ lệnh terminal.
mongodump --db Database_name --out /var/backups/mongobackups
//or
mongodump --db Database_name --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
//hoặc khi có yêu cầu đăng nhập
mongodump --host 127.0.0.1 --port 27017 --db name_database --authenticationDatabase admin --username admin --password yourpassword --out /root/dump
Ở đây bạn nên kết hợp với lệnh xóa database của mongodb trước để tránh lỗi xảy ra nhé. Thực hiên ngoài terminal.
mongorestore --db Database_name --verbose /path_backup
show dbs
Thông thường khi cài mongodb thì chỉ cho phép kết nối dữ liệu ở máy chủ, nếu bạn muốn có thể truy cập mongodb từ xa, hoặc kết nối với các website khác thì bạn cần làm theo những bước sau:
mongod --auth
db.createUser({user:"admin_name", pwd:"1234", roles:["readWrite","dbAdmin"]})
db.auth("admin_name", "1234")
//==> kết quả bằng 1 là kiểm tra user mới tạo thành công
//còn
//Error: Authentication failed. là lỗi đăng nhập sai
//0
trong đó dbAdmin là tên database cần thêm user vào
sudo nano /etc/mongod.conf
Tìm dòng #auth và xoá dấu thăng phí trước đi
auth=true
// hoặc security.authorization : enabled
Cuối cùng chúng ta restart lại dịch vụ mongodb là được
sudo service mongod restart
Nếu bạn đang sử dụng ubuntu, thì chúng ta cần báo cho ufw biết là cho phép tất cả các truy cập đến port 27017
sudo ufw allow from ip_cua_may_muon_ket_noi to any port 27017
//ví dụ: sudo ufw allow from 223.211.199.23 to any port 27017
Chỉnh lại config của mongodb "sudo nano /etc/mongod.conf"
//etc/mongod.conf
. . .
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
. . .
thay thành
. . .
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,ip_may_chu // hoặc thay thành 0.0.0.0 để cho phép tất cả ip có thể truy cập
. . .
Lưu ý: ip_may_chu là ip của máy chủ (vps) chứ không phải là ip của máy muốn truy cập từ xa
Cuối cùng là khởi động lại dịch vụ mongodb
sudo systemctl restart mongod
Kiểm tra kết nối đến máy chủ mongodb, ở máy khách chúng ta sẽ gõ lênh như sau:
mongo "mongodb://mongo_server_ip:27017" //<-- đối vơi máy chủ không cần tài khoản và mật khẩu
mongo "mongodb://mongo_server_ip:27017" -u username -p //<-- đối với máy chủ yêu cầu xác thực tài khoản
//đối với phiên bản mới
mongosh "mongodb://mongo_server_ip:27017"
mongosh "mongodb://mongo_server_ip:27017" -u username -p