服务器之家

服务器之家 > 正文

MongoDB 简单入门教程(安装、基本概念、创建用户)

时间:2021-05-10 17:41     来源/作者:AsiaYe

    工作方向上的原因,不得不接触部分MongoDB的运维工作,之前有接触过一些MongoDB的内容,基本的运维操作没有什么问题,包括MongoDB的集群搭建、数据分片功能等都测试过。但是时间久了,很多东西不用就忘记了,最近准备出一个系列的MongoDB的运维操作文章,希望把这块儿内容重新拾起来。网上查了查,MongDB讲得好的书也就是<MongoDB权威指南>这本了,但是它引用的MongoDB版本比较旧,所以最好结合着官方文档看,这样收获会更快。MongoDB中文论坛里面也有不少前人总结的好文档,对学习都很有帮助。废话不多说,开始讲述吧!

 

NO.1 Linux下MongoDB的安装

 

   Linux下MongoDB的安装还算简单,总体可以分为如下几步:

1、去官网www.mongodb.org  上下载对应版本的二进制包,例如mongodb-linux-x86_64-rhel70-4.0.21-rc1.tgz

2、使用tar工具对这个包进行解压,通常解压的路径是/usr/local/

tar -zxvf mongodb-xxxx.tgz -C /usr/local

3、配置.bashrc中的环境变量,或者/etc/bashrc中的Path变量。添加下面的内容即可:

export MONGO_HOME="/usr/local/mongodb"

4、创建一个配置文件,放在目录/data/mongodb_${port}目录下,注意port为变量,它是你默认的端口(注意,MongoDB的默认端口是27017,一般不选用这个默认端口,我本人习惯将端口配置为27018,当然,你可以自己定义),配置文件mongo.conf内容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dbpath=/data/mongo_27018/data
 
logpath=/data/mongo_27018/log/mongodb.log
 
auth=false
 
bind_ip=127.0.0.1
 
logappend=true
 
port=27018
 
fork=true
 
journal=false

5、启动MongoDB服务。

mongod --config /data/mongo_27018/mongo.conf

即可

6、使用mongo命令行连接MongoDB服务

?
1
[root@VM-0-14-centos ~]# mongo --port=27018
?
1
2
3
4
5
6
7
8
9
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27018/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("749f350a-398b-4dcb-992c-f5f7b20e0426") }
MongoDB server version: 4.0.6
> show dbs
admin  0.000GB
config 0.000GB
local  0.000GB
test  0.000GB

 

NO.2 数据存储基本概念

 

     MongoDB中的数据存储方式和MySQL不一样,因为MongoDB是专门针对分布式设计的数据库,因此它的存储方式相对比较灵活。

     在MySQL中,我们关心的数据对象分别是数据库、表、记录;

     在MongoDB中,它们对应成为数据库、集合、文档。

     你可以类比的认为集合和表是一个概念,记录和文档是一个概念,当然,它们中间还有很多不同的地方。举个小例子:  在MySQL中,所有表中的记录,拥有相同的字段,在MongoDB中,同一个集合中的文档拥有的字段可以不同。下面是同一个collection(person)中,不同的表记录。

?
1
2
3
4
5
6
7
8
9
10
> use test
switched to db test
 
> show collections;
num
person
 
> db.person.find()
{ "_id" : ObjectId("5f96ac2f5e5c5ff982b9c6ae"), "name" : "yeyz", "age" : [ 26, 30 ], "info" : [ { "sex" : "male", "score" : 100 } ] }
{ "_id" : ObjectId("5f96e286dee7ee56f803605f"), "age" : 1 }

 

NO.3 用户创建

 

    MongoDB中的账号一般设置成库级别的,我们创建账号的时候,需要指明这个账号是隶属于哪个库。我们上面的配置文件中配置了auth=false,说明登录的时候不需要验证用户权限,这样当然是不安全的。那么我们就需要为这个MongoDB实例创建一个我们想要的账号,创建账号的语句如下:

?
1
2
3
4
5
6
7
db.createUser(
... ...   {
... ...     user: "yeyz",
... ...     pwd: "123456", // 或者输入明文密码
... ...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... ...   }
... ... )

这里,我创建了一个账号,名字叫yeyz,密码是123456,这个账号我们注意到还有一个roles的字段,它的内容意思是该账户是个管理账户,隶属于admin库下,它可以读写所有的database,这样我们在登录的时候,就可以使用这个账号进行登录。如下:

?
1
2
3
4
5
6
7
8
9
10
[root@VM-0-14-centos ~]# mongo --port=27018 -u "yeyz" -p 123456
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27018/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("5cfebf40-2ede-4852-9c83-f85efbf13a4e") }
MongoDB server version: 4.0.6
> show dbs;
admin  0.000GB
config 0.000GB
local  0.000GB
test  0.000GB

以上内容,仅仅是MongoDB的一小部分,它的账号体系、数据存储体系以及增删改查方法,后面的文章我们会继续讲述,今天就先到这里。

以上就是MongoDB 简单入门教程(安装、基本概念、创建用户)的详细内容,更多关于MongoDB 入门教程的资料请关注服务器之家其它相关文章!

原文链接:https://cloud.tencent.com/developer/article/1737645

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部