CentOS7安装MongoDB

一、服务器说明

系统环境版本:CentOS Linux release 7.3.1611 (Core)

MongoDB版本:5.0.11

二、环境配置

2.1、停止防火墙

systemctl status firewalld                 #查看firewall
systemctl stop firewalld                   #停止firewall
systemctl disable firewalld                #禁止firewall开机启动
reboot

2.2、关闭selinux

vi /etc/selinux/config
SELINUX=disabled

三、下载MongoDB Community Server(社区版)

3.1、下载地址

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

3.2、下载步骤

image

四、安装

4.1、上传MongoDB安装包 mongodb-linux-x86_64-rhel70-5.0.11.tgz 到 /usr/local/ 目录下

image

4.2、解压安装包

[root@localhost local]# tar -zxvf mongodb-linux-x86_64-rhel70-5.0.11.tgz

image

4.3、重命名解压后的包名称

[root@localhost local]# mv mongodb-linux-x86_64-rhel70-5.0.11 mongodb

image

4.4、创建dbpath和logpath

[root@localhost mongodb]# mkdir -p /usr/local/mongodb/data /usr/local/mongodb/log /usr/local/mongodb/conf

image

4.5、启动mongodb服务

#进入mongodb目录
[root@localhost mongodb]#cd /usr/local/mongodb
#启动mongodb服务
[root@localhost mongodb]#bin/mongod --port=27017 --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log/mongodb.log --fork

image

#访问mongodb
[root@localhost mongodb]#bin/mongo

image

#查看mongodb数据库
show dbs

image

4.6、启动mongodb服务的参数说明

--dbpath:指定数据文件存放目录
--logpath:指定日志文件,注意是指定文件不是目录
--logappend:使用追加的方式记录日志
--port:指定端口,默认为27017
--bind_ip:默认只监听localhost网卡
--fork:后台启动
--auth:开启认证模式

4.7、关闭mongodb服务

  • 方式一:
#进入mongodb目录
[root@localhost mongodb]#cd /usr/local/mongodb/bin
#关闭mongodb服务
[root@localhost mongodb]# ./mongod --port=27017 --dbpath=/usr/local/mongodb/data --shutdown

image

  • 方式二、
use admin            --进入admin库
db.shutdownServer()   --关闭服务
exit                 --退出shell即可

image

4.8、利用配置文件启动mongodb服务

  • 添加环境变量
#修改/etc/profile,添加环境变量,方便执行MongoDB命令
export MONGODB_HOME=/usr/local/mongodb
PATH=$PATH:$MONGODB_HOME/bin
#重新加载环境变量
source /etc/profile
  • 创建并编辑mongo.conf文件
[root@localhost ~]# cd /usr/local/mongodb/conf/
[root@localhost conf]# touch mongo.conf
[root@localhost conf]# vim mongo.conf
#增加如下内容(注意:一定要yaml格式)
systemLog:
  destination: file
  path: /usr/local/mongodb/log/mongod.log # log path
  logAppend: true
storage:
  dbPath: /usr/local/mongodb/data # data directory
  engine: wiredTiger #存储引擎
  journal: #是否启用journal日志
    enabled: true
net:
 bindIp: 0.0.0.0
 port: 27017 # port
processManagement:
 fork: true

4.9、启动mongodb服务

[root@localhost mongodb]# bin/mongod -f /usr/local/mongodb/conf/mongo.conf

image

4.10、访问mongodb

image

五、开放对外端口

systemctl status firewalld  # 查看防火墙状态
firewall-cmd --zone=public --add-port=27017/tcp --permanent # mongodb默认端口号
firewall-cmd --reload  # 重新加载防火墙

firewall-cmd --zone=public --query-port=27017/tcp # 查看端口号是否开放成功,输出yes开放成功,no则失败

六、设置MongoDB开机自启动

6.1、在/lib/systemd/system/目录下新建mongodb.service文件,内容如下:

[Unit]

Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config  /usr/local/mongodb/conf/mongo.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config  /usr/local/mongodb/conf/mongo.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注:其中 /usr/local/mongodb 需要设置为自己MongoDB的安装目录下。

*注:conf和service文件中设置路径,注意需要设置为绝对路径。

6.2、设置权限

chmod 754 mongodb.service

6.3、启动关闭服务,设置开机启动

#开机启动
systemctl enable mongodb.service
#启动服务
systemctl start mongodb.service
#关闭服务
systemctl stop mongodb.service

七、自定义用户

创建用户,设置账号,密码,权限

// admin数据库
> use admin
switched to db admin
> db.createUser({ user:"root", pwd:"123456", roles:["root"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }

// 其他数据库
> use test
switched to db test
> db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }


八、启用身份验证

8.1、修改mongodb.conf文件,启用身份验证

vi /etc/mongod.conf

security:
  authorization: "enabled"   # disable or enabled

8.2、重启MongoDB

systemctl restart mongodb

8.3、用户认证

> use admin
switched to db admin
> db.auth("root", "123456")
1 // 授权成功
// 其他常用命令
db.updateUser(user, writeConcern) # 更新用户
db.dropUser('test') # 删除用户

8.4、远程连接

// 终端连接
mongo 10.128.218.14:27017/database -u username -p password

// mongoose方式连接
mongoose.connect('mongodb://username:password@host:port/database?options...', {useNewUrlParser: true});

// 通过客户端连接

image

九、用户权限角色说明

规则说明
root只在admin数据库中可用。超级账号,超级权限
Read允许用户读取指定数据库
readWrite允许用户读写指定数据库
dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
posted @ 2022-08-22 14:27  我命由我不由天—hao  阅读(2372)  评论(0编辑  收藏  举报