背景
接到上级任务,需要在测试环境搭建一套mongodb;对于从来没接触过mongodb的小白,但拥有多年编程经验的我来说,不虚好吧。因为我有自己做事的思考。
首先向领导确认两点:
- 搭建mongo db是单机版的,还是主从模式,还是分片模式?
- 线上使用mongodb 版本是多少?
这是做这件事情的输入;输出是能在测试环境有一套mongodb实例,应用能连上。OK,接下来按部就班的进行吧。
第一步 下载软件
因为某些方面原因,线上mongo 版本较老,用的是4.4.4,正好同事有tgz包,直接上传到服务器上。
我是运气好。没安装来源的,可从官网上下载,链接https://www.mongodb.com/try/download/community
第二步 阅读安装文档
官方安装文档链接:https://www.mongodb.com/docs/v4.4/tutorial/install-mongodb-on-red-hat-tarball/
英文比较好的同学,建议直接看官方的操作手册。如果喜欢中文版本的,请继续》
PS:正常情况下这种安装文档,团队内应该是做为知识文档进行沉淀的。可咋不是刚入职了个小公司。其它小公司咋不清楚;但这个小公司除了代码以为,PRD和技术文档那是屈指都没的数
第三步 动手开始安装
解压文件
下载好的安装包,通过ftp上传到/usr/local/src/(具体存到那个目录,以项目规范为主);然后执行解压命令
tar -zxvf mongodb-linux-x86_64-rhel62-4.4.4.tgz
创建相关目录
tgz手工安装情况下,mongodb是不会创建mongo数据存放文件目录,mongo运行日志目录,以及mongo配置文件目录,需要自己新建;执行以下命令;
cd mongodb-linux-x86_64-rhel62-4.4.4
mkdir data logs conf
创建mongodb 配置文件
此配置文件,主要用于配置mongo 启动端口,配置数据存放文件目录路径,日志目录路径等信息
vim conf/mongodb.conf
把以下配置信息放入配置文件中
# 日志文件位置
logpath=/usr/local/src/mongodb-linux-x86_64-rhel62-4.4.4/logs/mongod.log
# 以追加方式写入日志
logappend=true
# 是否以守护进程方式运行
fork=true
# 默认27017
port = 27017
#最大同时连接数
maxConns=100
# 数据库文件位置
dbpath=/usr/local/src/mongodb-linux-x86_64-rhel62-4.4.4/data
# 允许哪个ip的连接,0.0.0.0表示任意ip都可以连接
bind_ip=0.0.0.0
# 是否以安全认证方式运行,默认是不认证的非安全方式,一开始安装建议不要开启,设置好密码后再重启
#auth = true
环境变量设置——可选操作
如果想要在任何路径运行mongodb命令,可以编辑profile文件环境;把mongodb bin目录放入到系统path环境变量里,在profile文件的最后一行加入。命令
vim /etc/profile
export PATH=/usr/local/src/mongodb-linux-x86_64-rhel62-4.4.4/bin:$PATH
保存之后,使这个profile文件生效
source profile
启动Mongo DB
mongod --config /usr/local/src/mongodb-linux-x86_64-rhel62-4.4.4/conf/mongodb.conf
正确启动后的界面为
[root@cddatadev128 bin]# mongod --config /data/mongodb4.4/mongodb-linux-x86_64-rhel62-4.4.4/conf/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 12949
child process started successfully, parent exiting
如果出现以下界面,检查配置文件路径是否正确
第四步 添加安全认证——可选操作
虽然在小公司,但做事还是不能太水了,至少还得有自己专业的一面。大多数网上安装文档到第五步就结束了;但个人认为 安全问题有时比业务更重要,建议加上安全认证
配置全局变量之后,任意路径均可输入指令访问数据库:
(如果没有配置,进入/usr/local/src/mongodb-linux-x86_64-rhel62-4.4.4/bin目录下,同样有mongo 命令)
[root@cddatadev128 mongodb-linux-x86_64-rhel62-4.4.4]# mongo
MongoDB shell version v4.4.4
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("618b5d26-0eb9-4271-a6f9-4912fe8e3060") }
MongoDB server version: 4.4.4
通过以下命令创建用户
> use admin
> db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
关闭mongo服务
db.shutdownServer()
打开 mongo.conf里关于安全验证配置
auth = true
使用启动mongo db方法,重新启动即可
mongod --config /usr/local/src/mongodb-linux-x86_64-rhel62-4.4.4/conf/mongodb.conf