MongoDB单机安装

MongoDB手册中文版地址:https://mongodb.net.cn/manual/introduction/

MongoDB下载地址:https://www.mongodb.com/try/download/community

1.安装mongodb软件

安装前的操作系统优化请参考MongoDB安装前的系统优化

sql 复制代码
#(1)安装依赖
[root@MongoDB-01 ~]# yum install libcurl openssl numactl -y

#(2)创建mongodb用户
[root@MongoDB-01 ~]# useradd mongodb
[root@MongoDB-01 ~]# passwd mongodb
Changing password for user mongodb.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

#(3)上传mongodb-linux-x86_64-rhel70-7.0.28版本tar包、db工具包、mongosh包,解压安装
[root@MongoDB-01 ~]# cd /usr/local/
[root@MongoDB-01 local]# tar xf mongodb-database-tools-rhel70-x86_64-100.14.0.tgz
[root@MongoDB-01 local]# tar xf mongodb-linux-x86_64-rhel70-7.0.28.tgz
[root@MongoDB-01 local]# yum localinstall mongodb-mongosh-2.5.10.x86_64.rpm -y

#(4)将mongodb服务目录与mongodb-tools目录软连接到/usr/local下
[root@MongoDB-01 local]# ln -s mongodb-linux-x86_64-rhel70-7.0.28 mongodb
[root@MongoDB-01 local]# ln -s mongodb-database-tools-rhel70-x86_64-100.14.0 mongodb-tools

#(5)将mongodb相关命令添加到环境变量
[root@MongoDB-01 local]# echo "export PATH=/usr/local/mongodb/bin:/usr/local/mongodb-tools/bin:$PATH" >> /etc/profile
[root@MongoDB-01 local]# source /etc/profile

2.创建相关目录

sql 复制代码
[root@MongoDB-01 local]# mkdir /data/mongod/{data,log,key,pid,conf} -p
[root@MongoDB-01 local]# chown -R mongodb.mongodb /data/mongodb
[root@MongoDB-01 local]# ll /data/mongod/
total 0
drwxr-xr-x 2 mongodb mongodb  25 Feb  2 22:35 conf
drwxr-xr-x 7 mongodb mongodb 278 Feb  2 22:51 data
drwxr-xr-x 2 mongodb mongodb   6 Feb  2 05:57 key
drwxr-xr-x 2 mongodb mongodb  24 Feb  2 22:40 logs
drwxr-xr-x 2 mongodb mongodb  24 Feb  2 22:40 pid

3.编辑配置文件(单机版)

sql 复制代码
[root@MongoDB-01 local]# vim /data/mongod/conf/mongod.conf
systemLog:
  #MongoDB发送所有日志输出的目标指定为文件  
  destination: file
  #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径 
  path: "/data/mongod/log/mongod.log"
  #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾 
  logAppend: true

storage:
  #mongod实例存储其数据的目录 
  dbPath: "/data/mongod/data"
  directoryPerDB: true
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 7
      directoryForIndexes: true
    collectionConfig:
      blockCompressor: zstd  #4.0之后用zstd
    indexConfig:
      prefixCompression: true
processManagement:
  #启用在后台运行mongos或mongod进程的守护进程模式。 
  fork: true
  pidFilePath: "/data/mongod/pid/mongod.pid"
net:
  bindIp: 0.0.0.0
  port: 27017
  maxIncomingConnections: 2000
operationProfiling:
  slowOpThresholdMs: 100
  mode: off
security:
  authorization: enabled

4.启动mongodb服务

4.1 配置文件启动(可选)

sql 复制代码
[root@MongoDB-01 local]# su - mongodb
[mongodb@MongoDB-01 ~]$ numactl --interleave=all mongod -f /data/mongod/conf/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 1792
child process started successfully, parent exiting

4.2 system启动(推荐)

sql 复制代码
##system启动方式
[root@MongoDB-01 local]# vim /usr/lib/systemd/system/mongod.service
[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
ExecStart=/usr/bin/numactl --interleave=all /usr/local/mongodb/bin/mongod --config /data/mongod/conf/mongod.conf
TimeoutStopSec=300
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
LimitNOFILE=65535
LimitNPROC=65535

[Install]
WantedBy=multi-user.target

[root@MongoDB-01 local]# systemctl daemon-reload
[root@MongoDB-01 local]# systemctl start mongod
[root@MongoDB-01 local]# systemctl enable mongod

5.创建用户

(1)创建的第一个账号必须拥有账号管理的权限。

(2)开启权限管控后,如果 MongoDB里尚无账号,则可以直接新增第一个账号

(3)若 MongoDB里已经有账号,则必须使用"有管理账号权限的用户"才能添加新的账号

sql 复制代码
[root@MongoDB-01 local]# mongosh --port 27017
> use admin
> db.createUser({user: "root",pwd: "123",roles: [ { role: "root", db: "admin" } ]})
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}

6.登录数据库

sql 复制代码
##安全认证登录的三种方式
mongosh 10.0.0.101:27017/admin  -u root -p 123
mongosh -uroot -p 123 --port=27017 --authenticationDatabase=admin
#登录后再验证
mongosh 10.0.0.101:27017/admin
myrs:PRIMARY> db.auth("root","123")

7.关闭MongoDB服务

json 复制代码
use admin
db.shutdownServer()
或
use admin
db.adminCommand({shutdown:1})
或
mongod -f /mongodb/conf/mongod.conf  --shutdown
相关推荐
爱可生开源社区1 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
AI全栈实验室1 天前
MongoDB迁移金仓踩了5个坑,最后一个差点回滚
mongodb
随逸1771 天前
《从零搭建NestJS项目》
数据库·typescript
加号32 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏2 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐2 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再2 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest2 天前
数据库SQL学习
数据库·sql
jnrjian2 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
十月南城2 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark