CentOS-7部署MongoDB
文章发布较早,内容可能过时,阅读注意甄别。
MongoDB 官网:https://www.mongodb.com/
各版本软件下载地址:https://www.mongodb.com/download-center/community?jmp=nav
# 1,安装前准备
在安装之前首先确认该版本软件是否支持你的操作系统。
更多详情查看:https://docs.mongodb.com/manual/installation/
Platform | 4.0 Community & Enterprise | 3.6 Community & Enterprise | 3.4 Community & Enterprise | 3.2 Community & Enterprise | 3.0 Community & Enterprise |
---|---|---|---|---|---|
RHEL/CentOS 6.2 and later | ✓ | ✓ | ✓ | ✓ | ✓ |
RHEL/CentOS 7.0 and later | ✓ | ✓ | ✓ | ✓ | ✓ |
# 2,环境说明
系统环境说明:
[root@localhost ~]$cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
1
2
2
软件版本说明
本次使用的mongodb版本为:mongodb-linux-s390x-rhel72-4.0.10.tgz
# 3,部署 MongoDB
# 1,安装所需依赖
yum -y install libcurl openssl
1
# 2,下载所需包
[root@localhost src]$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.10.tgz
1
# 3,解压包
[root@localhost src]$ tar xf mongodb-linux-x86_64-rhel70-4.0.10.tgz
[root@localhost src]$ mv mongodb-linux-x86_64-rhel70-4.0.10 /usr/local/mongodb
1
2
2
# 4,创建数据存储目录和日志文件目录
mkdir -p /usr/local/mongodb/data/db
mkdir -p /usr/local/mongodb/logs
1
2
2
# 5,编辑 MongoDB 启动配置文件
cd /usr/local/mongodb/bin
vim mongodb.conf
#数据存储目录
dbpath=/usr/local/mongodb/data/db
#日志文件目录
logpath=/usr/local/mongodb/logs/mongodb.log
#后台运行
fork=true
auth=true
bind_ip=0.0.0.0
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
参数说明:
参数 | 参数说明 |
---|---|
–dbpath | 数据存放路径 |
–logpath | 日志文件路径 |
–logappend | 日志输出方式 |
–port | 启用端口号 |
–fork | 在后台运行 |
–auth | 是否需要验证权限登录 (用户名和密码) |
–bind_ip | 限制访问的 ip |
–shutdown | 关闭数据库 |
# 6,MongoDB 的可执行文件位于 bin 目录下,需要将其添加到 PATH 路径中
vim /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin #末尾处添加
source /etc/profile #重新加载环境变量
1
2
3
4
2
3
4
# 7,启动 MongoDB
cd /usr/local/mongodb/bin
mongod -f mongodb.conf
1
2
2
# 8,访问
[root@localhost ~]$mongo
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("cdd40824-7611-41cb-a3ab-ef737a82068d") }
MongoDB server version: 4.0.10
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
>
[root@localhost bin]$mongod -f mongodb.conf --shutdown #关闭服务
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 9,使用脚本加入开机自启
给系统添加 MongoDB 管理脚本。
cat > /usr/lib/systemd/system/mongod.service << EOF
[Unit]
Description=MongoDB database server
After=network.target
[Service]
Type=forking
#PIDFile=/home/dp/data/mongodb/pid
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
然后加载启动。
[root@localhost ~]$systemctl daemon-reload
[root@localhost ~]$systemctl start mongod
[root@localhost ~]$systemctl status mongod
● mongod.service - MongoDB database server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2019-07-03 11:41:13 CST; 1min 29s ago
Main PID: 18489 (mongod)
CGroup: /system.slice/mongod.service
└─18489 /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf
Jul 03 11:41:12 localhost.localdomain systemd[1]: Starting MongoDB database server...
Jul 03 11:41:12 localhost.localdomain mongod[18487]: about to fork child process, waiting until server is ready for connections.
Jul 03 11:41:12 localhost.localdomain mongod[18487]: forked process: 18489
Jul 03 11:41:13 localhost.localdomain mongod[18487]: child process started successfully, parent exiting
Jul 03 11:41:13 localhost.localdomain systemd[1]: Started MongoDB database server.
[root@localhost ~]$systemctl enable mongod
Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /usr/lib/systemd/system/mongod.service.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
这样就能够实现比较简单的管理了。
# 1,数据库的启动与关闭
启动:mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log/mongodb.log --port=27017 --logappend --fork
关闭:mongod --shutdown --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log/mongodb.log --port=27017 --logappend --fork
1
2
2
# 2, 参数说明:
参数 | 参数说明 |
---|---|
–dbpath | 数据存放路径 |
–logpath | 日志文件路径 |
–logappend | 日志输出方式 |
–port | 启用端口号 |
–fork | 在后台运行 |
–auth | 是否需要验证权限登录 (用户名和密码) |
–bind_ip | 限制访问的 ip |
–shutdown | 关闭数据库 |
# 3,使用配置文件的方式管理数据库
# 1,普通格式配置文件
[mongod@MongoDB conf]$ vim mongod1.conf
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/log/mongodb.log
port=27017
logappend=1
fork=1
1
2
3
4
5
6
2
3
4
5
6
使用配置文件时的启动与关闭:
启动:mongod -f mongod1.conf
关闭:mongod -f mongod1.conf --shutdown
1
2
2
# 2,YAML 格式配置文件(官方推荐使用)
[mongod@MongoDB conf]$ cat mongod.conf
systemLog:
destination: file
path: "/usr/local/mongodb/log/mongod.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "/usr/local/mongodb/data"
processManagement:
fork: true
net:
port: 27017
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
注:mongod 进程收到 SIGINT 信号或者 SIGTERM 信号,会做一些处理
- 关闭所有打开的连接
- 将内存数据强制刷新到磁盘
- 当前的操作执行完毕
- 安全停止
# 3,切忌 kill -9
如果使用 kill -9
直接关闭数据库,可能会造成数据丢失,数据文件损失等风险。
可通过如下安全的方式进行关闭。
$ kill -2 PID
原理:-2表示向mongod进程发送SIGINT信号。
$ kill -4 PID
原理:-4表示向mognod进程发送SIGTERM信号。
1
2
3
4
2
3
4
当然也可以通过使用systemctl stop mongod
来关闭数据库。
# 4,客户端连接工具
MongoDB 有一个相当友好的客户端管理工具,这里我推荐使用 robo
,可以通过如下地址下载使用。
参考:http://t.cn/AiOcP9Cy
上次更新: 2024/07/04, 22:40:37