Centos7环境搭建mongodb详细教程
操作系统 | 版本信息 |
---|---|
linux | CentOS Linux release 7.9.2009 (Core) |
mongodb | linux-x86_64-rhel70-3.6.23 |
mongodb软件包下载地址
https://www.mongodb.com/download-center/community
将下载好的安装包上传到服务器中
- 解压安装包
tar -xvf mongodb-linux-x86_64-rhel70-3.6.23.tgz
- 重命名
mv mongodb-linux-x86_64-rhel70-3.6.23 mongodb-3.6.23
- 进入mongo目录,创建存放数据目录及存放日志目录和存放配置文件目录
cd mongodb-3.6.23
mkdir DBdata //数据目录
mkdir DBlog //日志目录
mkdir config //配置文件目录
- 进入DBlog目录,增加日志文件 //为空即可
cd mongodb-3.6.23/DBlog
touch mongodb.log
5. 进入config目录,增加配置文件,添加如下配置,请结合实际情况填写
cd mongodb-3.6.23/config
vim mongodb.conf
#端口
port=27017
#数据库存文件存放目录
dbpath=/data/install/mongodb-3.6.23/DBdata
#日志文件存放路径
logpath=/data/install/mongodb-3.6.23/DBlog/mongodb.log
#使用追加的方式写日志
logappend=true
#以守护进程的方式运行,创建服务器进程
fork=true
#最大同时连接数
maxConns=100
#不启用验证
noauth=true
#每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
journal=true
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复
#存储引擎有mmapv1、wiretiger、mongorocks
storageEngine=wiredTiger
#这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
bind_ip=127.0.0.1,这里填写本机实际ip地址
nounixsocket=true
#密码验证开启
#auth=true
- 启动mongodb
cd /data/install/mongodb-3.6.23
./bin/mongod -f ./config/mongodb.conf
- 验证数据是否部署成功
cd /data/install/mongodb-3.6.23 //进入安装目录
./bin/mongo 127.0.0.01:27017 //登录数据库,这里的ip地址可以写为本机实际ip地址,端口为mongodb.conf配置文件中的port
show dbs; //查看数据库
use admin; //使用数据库
db.createUser({user:‘用户名’,pwd:‘密码’,roles:[‘userAdminAnyDatabase’]}) //创建用户设置密码
db.auth(‘用户名’,‘密码’) //验证,返回1则正常
截止到现在mongodb部署完成,但是我们既然设置了用户名密码,当然也需要开启mongodb的鉴权功能
- 开启用户认证
只需要修改配置文件auth=true即可
- 登录验证
./bin/mongo ip:port/db名称 -u 用户名 -p 密码
说明:
当开启用户认证之后,重启mongodb可能会提示错误
F CONTROL [main] Failed global initialization: BadValue: auth is not allowed when noauth is specified
此问题可能是由于认证和指定认证机制的协议在较新的服务器版本中发生了变化,博主还没找到相关的处理方式,再遇到这个问题之后尝试升更换mongo较高版本即处理。如果哪位同学遇到此问题欢迎留言