linux 单机部署 mongodb

前言:

因业务发展需要存储一些非结构化数据,并且需要对这些数据进行增删改查。调研发现mongodb满足需求并且使用门槛低,所以单机部署试试效果。

一、官网下载

地址:https://www.mongodb.com/try/download/community

linux 单机部署 mongodb_第1张图片

首页进去会显示最新版本,但我这边之前安装的是5.0.5的版本,所以我这次也是在历史版本里面下载的5.0.5版本,如下:linux 单机部署 mongodb_第2张图片

建议下载.tgz文件,文件上传到服务器就可以安装了。

二、安装前准备

首先说一下安装规划,我打算把所有mongodb的文件都放在同一个文件夹下,这样以后好运维。

mkdir /apps/program/mongodb

解压.tgz文件到上述目录

tar -zxvf mongodb-linux-x86_64-rhel70-5.0.5.tgz -C /apps/program/mongodb/

可以在相应目录看到一个新的文件夹

linux 单机部署 mongodb_第3张图片

三、相关配置

 mongodb 目录下分别创建etc, data, logs 文件夹,规划分别放入 配置,数据,日志文件。

linux 单机部署 mongodb_第4张图片

进入到 etc 目录,创建配置文件 mongodb.conf

# 数据库数据存放目录
dbpath=/apps/program/mongodb/data
# 数据库日志存放目录
logpath=/apps/program/mongodb/logs/mongodb.log
# 以追加的方式记录日志
logappend = true
# 端口号 默认为27017
port=27017 
# 以后台方式运行进程
fork=true 
# 开启用户认证
auth=true
# 访问数据库绑定的ip地址,全是0表示任何地址都可以
bind_ip=0.0.0.0
# 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true 

四、启动mongodb

进入到 mongodb 的 bin 目录下

linux 单机部署 mongodb_第5张图片

 执行启动命令

 ./mongod --config /apps/program/mongodb/etc/mongodb.conf

linux 单机部署 mongodb_第6张图片

 如果启动不成功请查看日志文件,里面会有提示。

五、创建超级用户

在 bin 目录下执行下述命令

# 进入mongo
./mongo
# 切换到 admin 数据库
use admin
# 创建超级用户 manager
db.createUser({user:'manager',pwd:'654321',roles:[{role:'root',db:'admin'}]})
# 用户认证,认证后才可查看和操作数据库
db.auth('manager','654321')

linux 单机部署 mongodb_第7张图片

 六、创建普通用户

# 进入数据库,bin目录下执行
./mongo
# 切换到 admin 数据库
use admin
# 超级用户登录
db.auth('manager','654321')
# 创建新的数据库
use db_table
# 创建普通用户并赋予读写权限
db.createUser({user:'table',pwd:'123456',roles:[{role:'readWrite',db:'db_table'}]})

linux 单机部署 mongodb_第8张图片

 附录:用户角色(role字段)说明

角色 说明
read 允许用户读取指定数据库
readWrite 允许用户读写取指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问
userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabas 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root 只在admin数据库中可用。超级账号,超级权限

补充:正确关闭数据库

# 方式一
./mongo
# 只有在admin数据库才能执行关闭
use admin
# 如果数据库已经开启认证的话,需要先认证
db.auth('manager','654321')
# 执行关闭
db.shutdownServer()

# 方式二
./mongod --shutdown -f [配置文件]


# 方式三(此法不安全,非必要不使用)
ps -ef|grep mongo
kill -15 [pid]

七、win 端登录

我这边只用过 NOSQLBooster,整体来说还可以,官网下载地址:https://nosqlbooster.com

填写基本信息:

linux 单机部署 mongodb_第9张图片

填写认证信息:

linux 单机部署 mongodb_第10张图片

 点击测试:

linux 单机部署 mongodb_第11张图片

 测试结果显示 ok 就表示连接没问题:

linux 单机部署 mongodb_第12张图片

连接以后就可以创建数据库、集合了:

 linux 单机部署 mongodb_第13张图片

八、命令工具

mongodb 4.x版本后命令行工具需要单独安装,下载地址:mongodb-tools,解压后可直接使用。​​​​​​​

一些常用命令:

//备份
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表 -o 文件存放路径

参数说明:
-h 指明数据库宿主机的IP
--port 指明数据库的端口 
-u 指明数据库的用户名
-p 指明数据库的密码
-d 指明数据库的名字
-c 指明collection的名字
-o 指明到要导出的文件名
-q 指明导出数据的过滤条件


//恢复
mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径

参数说明:
--drop:先删除所有的记录,然后恢复


//导出
mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv -o 文件名

参数说明:
-f 导出指定字段,以逗号分割,-f id,name导出id,name这三个字段
-q 可以根据查询条件导出,-q '{ "id" : "100" }' 导出id为100的数据
--csv 表示导出的文件格式为csv的


//导入
mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名

参数说明:
--upsert:插入或者更新现有数据

你可能感兴趣的:(db,数据库,mongodb,linux,部署)