(目录)

下载地址

社区版下载地址

Windows安装步骤

下载安装包

图片.png msi的是安装版,zip的是免安装版

安装版安装步骤

打开安装包 next 图片.png 同意条款 图片.png 选择安装内容 图片.png 设置服务名称,数据路径和日志路径 图片.png 下一步 图片.png 开始安装 图片.png 安装完成 图片.png

安装完成后,可以通过服务来查看数据库运行状态 图片.png

数据库安装后,配置是默认的,可以通过更改配置文件进行修改配置,配置更改后需要重启服务生效 在默认安装路径下找到mongod.cfg文件 图片.png

# mongod.conf
# Where and how to store data.
storage:
  dbPath: D:\Program Files\MongoDB\Server\4.4\data # 数据存放路径
  journal:
    enabled: true # 启动永久性日志
# where to write logging data.
systemLog:
  destination: file # 指定file或syslog。如使用file,则需指定path
  logAppend: true # 在实例重启时,是否追加日志,如果设置为false,则生成新日志
  path:  D:\Program Files\MongoDB\Server\4.4\log\mongod.log # 日志存放路径
# network interfaces
net:
  port: 27017 # 端口
  bindIp: 127.0.0.1 #监听客户端连接的IP地址。如果要绑定所有IP地址,则设定为0.0.0.0或使用bindIpAll;如果要绑定多个IP地址,使用逗号隔开
#security:  权限管控,默认关闭状态
security:
  authorization: enabled # 开启权限管控

免安装版安装步骤

解压缩安装包 图片.png 创建数据目录和日志目录 创建配置文件mongod.cfg,记录配置信息

systemLog:
  destination: file
  path:  D:\Program Files\MongoDB\Server\4.4\log\mongod.log
storage:
  dbPath: D:\Program Files\MongoDB\Server\4.4\data
net:
  port: 27017
  bindIp: 0.0.0.0

配置MongoDB服务 使用命令提示符(CMD)来配置服务 切换到MongoDB的bin目录下,用--install 安装windows服务 mongod -f "E:\Downloads\mongodb-windows-x86_64-4.4.11\mongodb-win32-x86_64-windows-4.4.11\mongod.cfg" --install 启动服务 net start MongoDB 停止服务 net stop MongoDB 移除服务 mongod --remove

登录MongoDB

开启命令提示符(cmd) 输入mongo命令登录MongoDB 图片.png

权限管控

默认配置是不启用权限管控的,如果开启了权限管控,则在登录后,需要创建一个具有账号管理的用户。

> use admin
switched to db admin
> db.createUser({user:"root",pwd:"123456",roles:['root']})
Successfully added user: { "user" : "root", "roles" : [ "root" ] }

Linux安装步骤

Linux安装包也分为安装版和免安装版 图片.png TGZ为免安装版,server/mongos/tools/shell为安装版

安装MongoDB软件

安装版本

将下载的rpm包放在同一个目录下,然后使用yum安装rpm文件 yum install mongodb-org-* 安装版本在安装时已经默认创建了启动文件,以及存放数据、日志、程序标识符文件的目录

免安装版本

创建目录 mkdir /mongodb 解压缩 tar zxf mongodb-linux-x86_64-rhel70-4.4.11.tgz 免安装版本需要自己创建启动文件,以及存放数据、日志、程序标识符文件的目录

配置启动文件

创建日志目录,数据目录,PID文件目录(安装版已自动创建)

mkdir -p /var/log/mongodb/
mkdir -p /var/lib/mongo/
mkdir -p /var/run/mongodb/

修改启动文件(安装版中包含了部分默认配置,免安装版是个新建的空文件)

vim /etc/mongod.conf
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
#  engine:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.


#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

配置文件基本属性说明

启动文件以空格来区分层次,注意有空格的地方不能漏掉,在:后都要有空格

日志相关的配置 systemLog
  • destination 指定file或syslog。如使用file,需要指定path
  • logAppend 如设置为true,在实例重启时,新的log追加到现有日志中,不设置为true,在实例重启时,会将现有日志截断并重新创建日志文件
  • path 日志存放的路径
存储相关的配置 storage
  • dbPath 数据存放目录
  • journal "enabled: true"表示启动永久性日志,以确保数据文件可以保持有效并可以恢复
程序管理相关的配置 processManagement
  • fork 设置为true,程序可以在后台执行
  • pidFilePath 程序标识符(PID)文件的储存路径。如果不是使用Daemon启动,则不需指定
  • timeZoneInfo 加载数据库时区的路径。Linux的安装包默认路径为"/usr/share/zoneinfo"
网络相关配置 net
  • port MongoDB启动端口,默认是27017
  • bindIp 监听客户端连接的IP地址,默认为127.0.0.1,仅能使用本机IP地址登录。如不绑定IP地址,则设定为0.0.0.0或使用bindIPALL;如希望绑定多个IP地址,使用逗号分隔

启动MongoDB服务

用配置文件启动

如果是免安装版本,需要到解压缩文件的bin路径下执行启动命令 mongod -f /etc/mongod.conf

用命令启动

mongod --logpath /var/log/mongodb/mongod.log --logappend --dbpath /var/lib/mongo --journal --pidfilepath /var/run/mongodb/mongod.pid --port 27017 --bind_ip 0.0.0.0 --fork

查看MongoDB服务状态

登录MongoDB mongomongo --port 27017 成功登录会提示以下信息

MongoDB shell version v4.4.11
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("bc357c8d-3416-4502-850a-24871bda7dc9") }
MongoDB server version: 4.4.11
Welcome to the MongoDB shell.
For interactive help, type "help".

停止MongoDB服务

使用MongoDB shell执行终止指令

> use admin
switched to db admin
> db.shutdownServer()
server should be down...

在操作系统下终止服务

ps aux |grep mongod
root      10435 47.0  6.2 1567836 62508 ?       Sl   01:11   0:01 mongod -f /etc/mongod.conf
root      10478  0.0  0.0 112708   976 pts/1    R+   01:11   0:00 grep --color=auto mongod
kill 10435

第一种方式比较安全,但是无法登录时也可以使用第二种方式

配置单机权限--Auth属性值

修改配置文件 vim /etc/mongod.conf 启动权限管控

security:
  authorization: enabled

重启MongoDB

mongo --port 27017
> use admin
> db.shutdownServer()

重连MongoDB,创建管理账号

mongo --port 27017
> use admin
> db.createUser({user:"<user_name>",pwd:"<user_pwd>",roles:['root']})

注意事项 创建的第一个账号必须拥账号管理的权限 开启权限管控后,如果MongoDB里没有账号,可以直接新增第一个账号 如果MongoDB里已经有账号,则必须使用有管理账号权限的用户才能添加新的账号

配置自启动服务

关闭SeLinux

需要SeLinux为关闭状态,可以参考以下文章进行关闭 Linux 防火墙:iptables、firewalld、SELinux

创建服务启动账号

安装版会自动创建账号 useradd mongod -s /bin/false

更改文件夹权限与服务启动账号一致

安装版会自动更改目录权限

chown -R mongod:mongod /var/log/mongodb/
chown -R mongod:mongod /var/lib/mongo/
chown -R mongod:mongod /var/run/mongodb/

编辑自启动服务文件

vim /usr/lib/systemd/system/mongod.service

[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network-online.target
Wants=network-online.target

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /etc/mongod.conf"
EnvironmentFile=-/etc/sysconfig/mongod
ExecStart=/usr/bin/mongod $OPTIONS
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongod.pid
Type=forking
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for mongod as specified in
# https://docs.mongodb.com/manual/reference/ulimit/#recommended-ulimit-settings

[Install]
WantedBy=multi-user.target
服务文件中的查用属性值及说明
  • User=mongod 启动用户
  • Group=mongod 启动用户组
  • Environment MongoDB启动文件的路径
  • ExecStart 启动MongoDB的命令
  • ExecStartPre 启动前执行的命令 创建PID文件目录,更改所属组和文件夹权限
  • PermissionsStartOnly 以root权限来启动程序
  • PIDFile PID文件的存放路径

服务管理命令

# 启动服务
systemctl start mongod.service
# 查询服务状态
systemctl status mongod.service
# 停止服务
systemctl stop mongod.service
# 设置服务自启动
systemctl enable mongod.service
# 停止服务自启动
systemctl idsable mongod.service