在Linux服务器上部署MongoDB数据库
1.部署前的准备
本篇文档编写的时间是2021年11月11日,使用的mongodb版本是5.0.3,今天上官网上看了一下15号已经更新到5.0.4版本,但变化不大
查看Linux服务器系统版本
这里用的是CentOS 7.6版本的操作系统。
在MongoDB官网下载社区版,并根据系统选择对应版本的tgz包。由于服务器系统是CentOS7.6版本,所以选择了CentOS7.0的这个包。当然你可以在服务器中使用yum来安装,yum安装好像能省去创建配置conf文件的步骤。
2.安装部署MongoDB数据库
把安装包上传到服务器上,路径最好和后端、前端程序在一起。
通过cd命令到路径,用命令
tar -zvxf mongodb-linux-x86_64-rhel70-5.0.3.tgz -C /usr/local
将mongodb压缩包解压到指定路径上。
安装好后可以用mv命令将文件夹名字修改成建议的名字,如:mongodb,方便后面安装
mv mongodb-linux-x86_64-rhel70-5.0.3 mongodb
修改环境变量
vim /etc/profile
在文件的最后面添加一句
export PATH=/usr/local/mongodb/bin:$PATH
然后执行命令让添加的环境变量生效
source /etc/profile
cd到刚刚解压出来的mongodb文件夹,mkdir命令创建数据存放的目录和日志目录,chmod命令将权限改为777
mkdir db
mkdir log
chmod 777 db
chmod 777 log
在log目录下创建文件存储log
touch mongodb.log
还是用mkdir命令,在mongodb的目录下创建文件夹etc,然后在etc文件夹中用touch命令创建配置文件
mkdir etc
touch mongod.conf
最好也给etc文件夹777权限。
然后mongodb文件夹内的结构是这样
为配置文件mongod.conf添加以下内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /usr/local/mongodb/data
journal:
enabled: true
# engine:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /usr/local/mongodb/log/mongodb.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
#processManagement:
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
其中需要注意的几个参数,首先是dbPath,需要填入之前创建存放数据的文件夹路径,systemLog下的path填入之前创建的数据库日志文件的路径。net下的port填入端口号,而bindIp默认是127.0.0.1,如果想要外部能够访问的话需要改成0.0.0.0。
进到cd到数据库目录下的bin文件,用命令
./mongod -f ./mongod.cfg --fork
来启动mongodb的服务
在服务器防火墙关闭的状态下,访问 ip+端口号的地址,看到下图则开启成功(注意如果连不上,用命令lsof -i先看看你的端口是否开启了,然后检查mongodb.conf文件中的biandip是否修改成0.0.0.0了)
然后在bin目录下用./mongod即可开启mongodb shell来用命令操控数据库
3.开启用户验证
为了数据库的安全性,可能还需要开启用户验证。在mongodb shell启动下,命令use admin切换至admin账户,然后用db.createuser命令创建一个角色,角色等级为超级管理员root,注意密码尽量不要用特殊符号,如果使用特殊符号,后面后端连接数据库时需要将特殊符号进行转义,比如@要转义为%40。
use admin
db.createuser({user:"",pwd:"",roles:[{role:"root",db:"admin"}]})
可以用show users来查看创建的用户
show users
创建好后先用命令db.shutdownServer()将数据库服务关闭,然后用ctrl+c退出mongodb shell。
db.shutdownServer()
如果不确定是否将数据库服务关闭了,可以使用命令lsof -i,检查数据库端口是否存在。
然后用vim打开之前在etc目录下创建的mongodb.config,在#security下添加
security:
authorization: enabled
保存后,再次使用命令./mongod -f ./mongod.cfg --fork启动数据库服务。
如果报错了,检查mongodb.config文件是否修改正确,要保证标点符号,缩减、空行标准。
启动后还可以用命令
ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo
将mongo路径软链到/usr/bin路径下,方便随处执行命令。
接下来在任意路径下,输入mongo,即可开启mongodb shell了
然后输入
use admin
db.auth('账号','密码')
发现返回了1,证明对数据库添加验证成功了。
我们使用MongoDB官方提供的compass工具
下载好后输入
mongodb://ip+端口号/?readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false
会发现提示你进行验证
需要在ip前添加 用户名:密码 并用@符号隔开
mongodb://用户名:密码@ip+端口号/?readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false
点击连接,就可以连上我们的数据库了,可以直接使用compass工具,在本地对我们的数据库进行操作。