Bu blogda, en popülerleri MariaDB ve MySQL olan, genellikle Xampp veya Lampp'de bulunan sistemler olan bazı veritabanı sistemlerinden bahsettik. Bu sefer hakkında konuşacağız başka bir sistem olan MongoDB.
MongoDB açık kaynaklı, belge odaklı bir NoSQL veritabanı sistemi, Bu yüksek performanslı veri kalıcılığı için tasarlanmış modern bir belge veritabanı yönetim sistemi, NoSQL tekniğinin teknolojisine dayalı yüksek kullanılabilirlik ve otomatik ölçeklendirme.
MongoDB, ilişkisel veritabanlarında olduğu gibi verileri tablolara kaydetmek yerine, veri yapılarını bir belgeye kaydeder.alan ve değer çiftlerinden oluşan bir veri yapısı olan (MongoDB belgeleri JSON nesneleriyle karşılaştırılabilir).
Yüksek performans ve mükemmel ölçeklenebilirlik özellikleri sağladığı için, güçlü, görev açısından kritik ve yüksek düzeyde erişilebilir veritabanları gerektiren modern uygulamalar oluşturmak için kullanılmaktadır.
Ubuntu'da MongoDB kurulumu
Bu veritabanı sistemini sistemimize kurmak için, Sadece bir terminal açmalı ve içinde aşağıdaki komutu uygulamalıyız:
sudo apt install mongodb
Kurulum tamamlandı, MongoDB hizmeti systemd üzerinden otomatik olarak başlayacak ve işlem 27017 numaralı bağlantı noktasında çalışacaktır. Şu komutu kullanarak durumunu kontrol edebilirsiniz:
sudo systemctl status mongodb
Değilse, şu komutla başlangıcı zorlayabiliriz:
sudo systemctl start mongodb
MongoDB'ye uzaktan bağlantıların etkinleştirilmesi
MongoDB veritabanı sistemi varsayılan olarak açmamız gereken 27017 numaralı bağlantı noktasını kullanır. Uzak bağlantıları kabul etmek için, yalnızca aşağıdaki komutla etkinleştiririz.
sudo ufw allow 27017
Varsayılan olarak, 27017 numaralı bağlantı noktasına yalnızca 127.0.0.1 yerel adresinden erişilebilir. MongoDB'ye uzak bağlantılara izin vermek için, sunucunun IP adresini dosyaya eklemek gerekir. /etc/mongodb.conf
Sadece şununla düzenleyin:
sudo nano
Ve buna benzer bir şey görebiliriz:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Sunucumuzdaki verilerle düzenlediğimiz.
MongoDB'ye her yerden erişime izin vererek, veri tabanındaki verilere sınırsız erişim sağlar. Bu nedenle, MongoDB bağlantı noktasının konuma özgü varsayılan IP adresine erişim sağlamak daha iyidir.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Bu yapıldıktan sonra, yeni değişikliklerin başlangıçta yüklenmesi için servisi yeniden başlatmak yeterlidir, bunu aşağıdakilerle yapıyoruz:
sudo systemctl restart mongodb
MongoDB'de şifreli bir kullanıcı oluşturun
Varsayılan olarak veritabanı oldukça basit erişime sahiptir, bu nedenle bunu güçlendirmek için parolalı bir kullanıcı oluşturabiliriz.
MongoDB, SCRAM kimlik doğrulama mekanizmasını kullanır varsayılan olarak. Sistemde SCRAM kullanmak, sağlanan kullanıcı kimlik bilgilerini kullanıcı adı, parola ve kimlik doğrulama veritabanına göre doğrular.
Veritabanı konsolunu aşağıdaki komutla başlatmanız yeterlidir:
Mongo
Mevcut veri tabanlarının bir listesini şu şekilde yapabiliriz:
show dbs
Kullanıcıları ve işlevleri yönetmemize izin verecek bir kullanıcı oluşturabiliriz örneğin kullanıcı oluşturma, kullanıcı rolleri verme veya iptal etme ve gümrük rolleri oluşturma veya değiştirme gibi.
Sadece yaz
use admin
Ve kullanıcıyı aşağıdaki komutla oluşturuyoruz, "root" kullanıcı adını ve "şifre" şifresini, uygun olduğuna inandığımız erişim kreatifleri ile değiştiririz.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Bu yapıldıktan sonra, kimlik doğrulama yöntemini etkinleştirmeliyiz bunun için aşağıdaki dosyayı düzenleyeceğiz:
sudo nano /lib/systemd/system/mongodb.service
Ve bir sonraki satırı arayacağız:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Ve aşağıdaki gibi düzenleyin:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Şimdi sadece veritabanında yeniden başlatıyoruz
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Kimlik doğrulama yöntemini şu şekilde test ediyoruz:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Bu HATA ile bana yardım et.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Hata: listDatabases başarısız oldu: {
«Tamam»: 0,
"Errmsg": "yönetici üzerinde {listDatabases: 1.0, $ db: \" admin \ "}" komutunu yürütme yetkisi yok,
"Kod": 13,
"CodeName": "Yetkisiz"
}:
_getErrorWithCode@src/mongo/shell/utils.js: 25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
shellHelper.show@src/mongo/shell/utils.js: 816: 19
shellHelper@src/mongo/shell/utils.js: 706: 15
@ (shellhelp2): 1: 1