Di blog ini kita telah membincangkan beberapa sistem pangkalan data, di antaranya yang paling popular adalah MariaDB dan MySQL, kerana ia adalah sistem yang biasanya disertakan dalam Xampp atau Lampp. Kali ini kita akan bercakap sistem lain yang MongoDB.
MongoDB adalah sistem pangkalan data NoSQL berorientasikan dokumen sumber terbuka, Ini adalah sistem pengurusan pangkalan data dokumen moden yang direka untuk ketekunan data berprestasi tinggi, ketersediaan tinggi, serta penskalaan automatik, berdasarkan teknologi teknik NoSQL.
Daripada menyimpan data dalam jadual seperti yang dilakukan dalam pangkalan data relasional, MongoDB menyimpan struktur data dalam dokumen, yang merupakan struktur data yang terdiri dari pasangan medan dan nilai (dokumen MongoDB setanding dengan objek JSON).
Kerana menyediakan prestasi tinggi dan ciri skalabilitas yang sangat baik, ia digunakan untuk membina aplikasi moden yang memerlukan pangkalan data yang kuat, penting untuk misi dan sangat tersedia.
Pemasangan MongoDB di Ubuntu
Untuk memasang sistem pangkalan data ini pada sistem kami, Kita hanya perlu membuka terminal dan melaksanakan perintah berikut di dalamnya:
sudo apt install mongodb
Pemasangan selesai, Perkhidmatan MongoDB akan bermula secara automatik melalui systemd dan prosesnya akan berjalan di port 27017. Anda boleh menyemak statusnya menggunakan arahan:
sudo systemctl status mongodb
Sekiranya tidak, kita boleh memaksa permulaan dengan arahan ini:
sudo systemctl start mongodb
Mengaktifkan sambungan jarak jauh ke MongoDB
Sistem pangkalan data MongoDB secara lalai menggunakan port 27017 yang mesti kita buka Untuk menerima sambungan jarak jauh, kami hanya mengaktifkannya dengan arahan berikut.
sudo ufw allow 27017
Secara lalai, port 27017 hanya dapat diakses dari alamat tempatan 127.0.0.1. Untuk membenarkan sambungan jauh ke MongoDB, perlu menambahkan alamat IP pelayan dalam fail /etc/mongodb.conf
Cukup edit dengan:
sudo nano
Dan kita dapat melihat sesuatu yang serupa dengan ini:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Yang kami edit dengan data dari pelayan kami.
Membolehkan akses ke MongoDB dari mana-mana, ia memberikan akses tanpa had ke data dalam pangkalan data. Oleh itu, lebih baik memberi akses ke alamat IP lalai khusus lokasi dari port MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Setelah ini selesai, sudah cukup untuk memulakan semula perkhidmatan sehingga perubahan baru dimuat pada awal, ini kami lakukan dengan:
sudo systemctl restart mongodb
Buat pengguna di MongoDB dengan kata laluan
Secara lalai pangkalan data mempunyai akses yang cukup mudah, jadi untuk mengukuhkannya kita dapat membuat pengguna dengan kata laluan.
MongoDB menggunakan mekanisme pengesahan SCRAM secara lalai. Menggunakan SCRAM pada sistem mengesahkan bukti kelayakan pengguna yang disediakan terhadap nama pengguna, kata laluan, dan pangkalan data pengesahan.
Cukup mulakan konsol pangkalan data dengan arahan berikut:
Mongo
Kita boleh membuat senarai pangkalan data yang ada dengan:
show dbs
Kita boleh membuat pengguna yang membolehkan kita mengurus pengguna dan fungsi seperti membuat pengguna, memberi atau mencabut peranan pengguna, dan membuat atau mengubah peranan kastam.
Taip sahaja
use admin
Dan kami membuat pengguna dengan arahan berikut, di mana kami mengganti nama pengguna "root" dan kata laluan "kata laluan", dengan akses crecenciales yang kami anggap sesuai.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Setelah ini selesai, kita mesti mengaktifkan kaedah pengesahan untuk ini kami akan menyunting fail berikut:
sudo nano /lib/systemd/system/mongodb.service
Dan kami akan mencari barisan seterusnya:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
dan sunting sehingga seperti berikut:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Sekarang kita hanya but semula dalam pangkalan data
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Kami menguji kaedah pengesahan dengan:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Tolong saya dengan KESILAPAN ini.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Ralat: listDatabases gagal: {
«Ok»: 0,
"Errmsg": "tidak diizinkan oleh admin untuk melaksanakan perintah {listDatabases: 1.0, $ db: \" admin \ "}",
"Kod": 13,
"CodeName": "Tidak dibenarkan"
}:
_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