一、服务器说明系统环境版本: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、关闭selinuxvi /etc/selinux/config
SELINUX=disabled 三、下载MongoDB Community Server(社区版)
3.1、下载地址下载地址:https://www.mongodb.com/try/download/community 3.2、下载步骤四、安装4.1、上传MongoDB安装包 mongodb-linux-x86_64-rhel70-5.0.11.tgz 到 /usr/local/ 目录下4.2、解压安装包[root@localhost local]# tar -zxvf mongodb-linux-x86_64-rhel70-5.0.11.tgz 4.3、重命名解压后的包名称[root@localhost local]# mv mongodb-linux-x86_64-rhel70-5.0.11 mongodb 4.4、创建dbpath和logpath[root@localhost mongodb]# mkdir -p /usr/local/mongodb/data /usr/local/mongodb/log /usr/local/mongodb/conf 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 #访问mongodb
[root@localhost mongodb]#bin/mongo 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 use admin --进入admin库
db.shutdownServer() --关闭服务
exit --退出shell即可 4.8、利用配置文件启动mongodb服务#修改/etc/profile,添加环境变量,方便执行MongoDB命令
export MONGODB_HOME=/usr/local/mongodb
PATH=$PATH:$MONGODB_HOME/bin
#重新加载环境变量
source /etc/profile [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: true4.9、启动mongodb服务[root@localhost mongodb]# bin/mongod -f /usr/local/mongodb/conf/mongo.conf 4.10、访问mongodb五、开放对外端口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、重启MongoDBsystemctl 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});
// 通过客户端连接
九、用户权限角色说明| 规则 | 说明 |
|---|
| root | 只在admin数据库中可用。超级账号,超级权限 | | Read | 允许用户读取指定数据库 | | readWrite | 允许用户读写指定数据库 | | dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile | | userAdmin | 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 | | clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 | | readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 | | readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 | | userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 | | dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |
来源:https://www.cnblogs.com/haolb123/p/16612702.html |