MongoDB系列(一):Linux 环境安装MongoDB与简单使用
MongoDB是一个开源的文档数据库,具备高性能,高可用性和自动扩展的特点; 是一个基于分布式文件存储的数据库系统,介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
在 NoSQL 领域里的文档存储数据库系统中,MongoDB 可以说是最具人气的,广泛应用于各个行业的生产中。
MongoDB官网(多看官方文档):https://www.mongodb.com/
概念
MongoDB 中基本的概念是文档、集合、数据库。MongoDB 将数据存储为一个文档,数据结构由键值(key:value
)对组成。 MongoDB 数据文档存储采用的是 BSON
格式,类似于JSON
对象。字段值可以包含其他文档,数组及文档数组。
1 | { |
MongoDB数据类型:https://docs.mongodb.com/manual/reference/bson-types/
与传统数据库概做个对比更易于理解:
SQL术语概念 | MongoDB术语概念 | 解释说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表 / 集合 |
row | document | 数据记录行 / 文档 |
column | field | 数据字段 / 域 |
index | index | 索引 |
table joins | 表连接, MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自动将**_id**字段设置为主键 |
安装
MongoDB 3.6版本只支持 64位操作系统
下载与操作系统对应的版本
下载地址:https://www.mongodb.com/download-center?ct=1000172319#community
我这里是 ubuntu-16.x,下载的包是:mongodb-linux-x86_64-ubuntu1604-3.6.5.tgz将包上传到 ubuntu 系统
通过rz
或sftp
将安装包上传到 ubuntu 目录里。解压包到安装路径
#tar zxvf mongodb-linux-x86_64-ubuntu1604-3.6.5.tgz -C /usr/local/mongodb/
运行
进入解压目录里的bin
目录,MongoDB 服务执行文件和客户端文件都此目录下。无任何配置启动
/usr/local/mongodb/bin#./mongod此方式 MongoDB 默认会读取
/ect/mongod.conf
配置文件,默认端口是27017
;默认是非安全的无需认证的即可登录;默认绑定本机IP,只能在本机登录。当然所有默认值都支持通过配置文件或运行参数来修改。客户端登录
非认证方法登录(无账号密码和授权的登录)/usr/local/mongodb/bin#./mongo
配置
创建
mongod.conf
文件
压缩包安装默认是没有该配置文件的,可手动创建,文件位置没有固定。/usr/local/mongodb/bin# touch mongod.conf
编辑配置文件,添加属性设置
以下只是简单配置,后续另开篇单独讲 MongoDB 的配置,MongoDB 官方推荐的是YML
格式的配置文件。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28#数据库文件位置,该路径要存在,不存在则创建
dbpath=/data/mongodb/db
#日志文件位置,该路径要存在,不存在则创建
logpath=/data/mongodb/logs/mongod.log
#以追加方式写入日志
logappend=true
#绑定访问IP:默认只能本地访问:(localhost)127.0.0.1
#bind_ip=127.0.0.1
bind_ip=0.0.0.0
#绑定所有,充许所有访问,默认是false
bind_ip_all=true
#端口,默认
#port=27016
#启用定期记录CPU利用率和I/O等待
#cpu=true
#是否需要安全认证,默认是不需认证的非安全方式
#noauth=true
#auth=true
#详细记录输出
verbose=true指定启动配置文件
/usr/local/mongodb/bin# ./mongod -f mongod.conf
或
/usr/local/mongodb/bin# ./mongod - -config mongod.conf或启动时指定运行参数
/usr/local/mongodb/bin# ./mongod - -auth - -bind_ip_all - -dbpath /data/mongodb/db - -logpath /data/mongodb/logs/mongod.log &
末尾&
表示后台运行,这样在命令终端关闭时,程序不会退出。关闭程序
/usr/local/mongodb/bin# ./mongod - -shutdown
不建议使用kill -9 pid
强制杀掉进程,会导致数据不完整的情况。
操作
数据库/集合
Shell 客户端登录 MongoDB 服务。
查看数据库
show dbs
选择数据库
use admin
查看当前在那个库
db
查看集合
show collections
用户/权限
客户端登录
服务器以非认证方式启动,客户端以非认证方式登录。/usr/local/mongodb/bin# ./mongo
选择数据库
use admin
创建角色
授权可访问任何资源,可做任何操作db.createRole({role:’sysadmin’,roles:[],privileges:[{resource:{anyResource:true},actions:[‘anyAction’]}]})
创建用户,归属于上面创建的角色
db.createUser({user:”root”,pwd:”123456”,roles:[{role:”sysadmin”,db:”admin”}]})
db.createUser({user:”kitty”,pwd:”123456”,roles: [{role:”userAdminAnyDatabase”,db:”admin”}]})MongoDB已有的角色及权限:https://docs.mongodb.com/manual/core/security-built-in-roles/
选择数据库,查看用户
show users
db.system.users.find()认证用户
db.auth(“root”,”123456”)
前面是账号,后面是密码,输出1时表示授权成功。
选择数据库,查看用户权限
db.runCommand({usersInfo:”root”,showPrivileges:true})
给用户添加角色
db.grantRolesToUser(“root”,[{role:”readWriteAnyDatabase”,db:”admin”}])
删除用户
db.system.users.remove({user:”kitty”})
关闭MongoDB服务,开启认证方式访问来启动服务
可以配置文件中开启,也可指定运行参数开启。/usr/local/mongodb/bin# ./mongod - -shutdown
/usr/local/mongodb/bin# ./mongod - -auth –[其它配置]客户端以用户/密码登录已授权的数据库
mongo -u “root” -p “123456” –authenticationDatabase “admin”
文档操作
CRUD操作:https://docs.mongodb.com/manual/crud/
插入数据
db.user.insert({name: ‘张三丰’, age:200, address:’武当山’,tags:[‘太极’,’武当’]})
查看数据
db.user.find()
db.user.find().pretty(); //格式化输出
MongoDB系列(一):Linux 环境安装MongoDB与简单使用