1. mongodb简介
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
https://www.runoob.com/mongodb/mongodb-tutorial.html
moqbus物联网平台使用mongodb存储传感数据。mongodb是nosql数据库,不需要事先定义数据结构(表/字段),因此能更好的适配多种类型的数据结构。
2. 安装
linux平台安装mongodb:
https://www.runoob.com/mongodb/mongodb-linux-install.html
3. 启动与安全设置
默认的启动方式下,mongodb是不进行权限认证的,也就是说它是开放的。只要知道了主机ip和mongodb的端口号,就可以对mongodb进行所有的操作。
如果忽视这一点,直接以默认方式启动,很容易收到黑客攻击。
{
"_id" : ObjectId("5dd894f6389bf73f55e2b835"),
"warning" : "Send 0.02 BTC to this address and contact this email with your ip or db_name of your server to recover your database! Your DB is Backed up to our servers!",
"Bitcoin_Address" : "1Kss6v4eSUgP4WrYtfYGZGDoRsf74M7CMr",
"Email" : "backupsql@protonmail.com"
}
所以,启动时一定要增加 --auth 选项:
mongod --auth --dbpath /moqbus/data/mongodb --logpath /moqbus/log/mongodb/mongod.log &
mongodb是没有默认管理员账号的,在开启认证选项之前,需要先以非认证模式启动,添加管理员账号后,再以认证模式重新启动。
mongod --dbpath /moqbus/data/mongodb --logpath /moqbus/log/mongodb/mongod.log &
4. 创建管理员
mongodb没有超级管理员root。需要在admin数据库下创建一个userAdminAnyDatabase角色的用户作为管理员。这个管理员不能操作数据库数据,只能用来管理用户。
use admin
db.createUser(
{
user: "myAdmin",
pwd: "12345678",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
关闭服务:
$ ./mongod
> use admin
> db.shutdownServer()
以下,使用 –auth 参 数,重新启动 mongoDB。
$ ./mongod
> use admin
> db.auth("myAdmin","12345678") #认证,返回1表示成功
5. 创建数据库和数据库用户
mongodb的数据库用户是隶属于某一个数据库的。
所以,要创建一个数据库用户,就需要先创建数据库。
创建数据库,只需要使用以下命令:use [dbname]
use moqbus_db
如果指定的数据库名[dbname]不存在,则会自动创建一个。
然后在这个数据库下创建用户:
db.createUser(
{
user: "moqbus_user",
pwd: "12345678",
roles: [
{ role: "readWrite", db: "moqbus_db" }
]
}
)
6. 创建集合
$ ./mongo
use moqbus_db
db.auth("moqbus_user", "12345678")
db.createCollection("dat")
db.createCollection("msglog")
show collections
exit
7. 小结
至此,我们安装并运行了mongodb,创建了数据库、用户和集合。
数据文件:/moqbus/data/mongodb
日志文件: /moqbus/log/mongodb/mongod.log
管理员账号:myAdmin
数据库:moqbus_db
用户:moqbus_user
集合:dat,msglog
网友评论