【赵渝强老师】管理MongoDB的运行

MongoDB提供了mongod命令用于启动MongoDB服务器端;而停止MongoDB服务器却可以通过几种不同的方式完成。下面分别进行介绍。

一、【实战】启动MongoDB服务器

通过执行下面的语句可以查看启动MongoDB服务器的帮助信息:

powershell 复制代码
mongod --help

# 输出的信息如下:
......
Storage options:
  --storageEngine arg	What storage engine to use - defaults 
                        to wiredTiger if no data files present
  --dbpath arg			Directory for datafiles - defaults to 
                        /data/db
  --directoryperdb      Each database will be stored in a 
                        separate directory
......

MongoDB除了可以将启动的配置参数写入配置文件以外,还可以直接写到mongod的启动命令中。

视频讲解如下
【赵渝强老师】启动MongoDB服务器

下面通过具体的步骤来进行演示。

(1)创建一个新的目录/data/db2用于存放MongoDB数据文件。

powershell 复制代码
mkdir -p /data/db2

(2)使用mongod命令启动MongoDB服务器。

powershell 复制代码
mongod --dbpath /data/db2/ --port 1234 --fork \
--logpath /data/db2/db2.log --directoryperdb

# 其中:
# --port:指定MongoDB监听的端口。
# --fork:指定MongoDB服务器将运行在后台。
# --logpath:指定MongoDB输出的日志文件。
# --directoryperdb:指定将不同的数据库存放在单独的目录下以方便管理。

# 输出的信息如下:
about to fork child process, waiting until server is ready for connections.
forked process: 28215
child process started successfully, parent exiting

(3)使用mongoshell登录MongoDB,并创建一个新的数据库和集合。

powershell 复制代码
mongo --port 1234
> use demo
> db.test1.insert({_id:'user001',name:'Tom'})

(4)查看目录/data/db2下的目录和文件。

powershell 复制代码
tree /data/db2

# 输出的信息如下:
/data/db2
├── admin
│   ├── collection-0--1928158110699126729.wt
│   └── index-1--1928158110699126729.wt
├── config
│   ├── collection-4--1928158110699126729.wt
│   ├── index-5--1928158110699126729.wt
│   └── index-6--1928158110699126729.wt
├── db2.log
├── demo
│   ├── collection-7--1928158110699126729.wt
│   └── index-8--1928158110699126729.wt
├── diagnostic.data
│   ├── metrics.2022-04-05T07-48-58Z-00000
│   └── metrics.interim
├── journal
│   ├── WiredTigerLog.0000000001
│   ├── WiredTigerPreplog.0000000001
│   └── WiredTigerPreplog.0000000002
├── local
│   ├── collection-2--1928158110699126729.wt
│   └── index-3--1928158110699126729.wt
├── _mdb_catalog.wt
......

# 提示:由于在启动MongoDB服务器时使用了--directoryperdb参数,
# 因此在第(3)步中创建的demo数据库将单独存放一个目录。

二、【实战】停止MongoDB服务器

停止MongoDB数据库服务器可以通过三种不同的方式来完成。

视频讲解如下
【赵渝强老师】停止MongoDB服务器

下面通过具体的示例来进行演示。

(方式1)在MongoDB服务器上执行shutdownServer命令时。

javascript 复制代码
> use admin
> db.shutdownServer()

# 提示:使用shutdownServer关闭数据库服务器,MongoDB会在关闭前先等待
# MongoDB集群中的从节点与主节点保持同步,这会将数据回滚的可能性降到最低。

(方式2)使用命令db.adminCommand强制关闭主节点。

javascript 复制代码
> db.adminCommand({"shutdown":1,"force":true})

# 这时会打印下面的错误信息,该信息表示数据库已经停止。
uncaught exception: Error: error doing query: failed: 
network error while attempting to run command 'shutdown' on host '127.0.0.1:1234'  :
DB.prototype.runCommand@src/mongo/shell/db.js:188:19
DB.prototype.adminCommand@src/mongo/shell/db.js:200:12
@(shell):1:1

(方式3)使用操作系统的kill命令关闭MongoDB服务器。

powershell 复制代码
kill -2 PID
# 其中:PID是MongoDB的服务器进程号。

以上三种方式都能够安全地停止MongoDB的运行。

相关推荐
j7~1 分钟前
【Redis初阶】(篇二)《一文吃透 Redis:特性、应用场景、版本演进与安装配置全解析》
数据库·redis·缓存·redis的特性·redis的主要应用场景·redis重要文件及其作用·安装并启动redis
Elastic 中国社区官方博客27 分钟前
使用 NVIDIA cuVS 在 Elasticsearch 中实现 GPU 加速的向量索引:在 10 分钟内处理 1.38 亿个向量
大数据·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
我们从未走散39 分钟前
AI 生图平台如何避免资损:用“扣款与凭据同事务”构建三态账本
开发语言·数据库·php
Shadow(⊙o⊙)2 小时前
MySQL复合查询
数据库·mysql
L·S·P7 小时前
25MB 管理 100+ 种数据库:开源轻量客户端 DBX 介绍与上手
数据库·mysql·开源·database·dbx
笃行3509 小时前
KingbaseES KSQL Developer 的连接管理、数据处理与对象管理
数据库
ha_lydms9 小时前
MaxCompute中加密与解密函数
大数据·数据库·数据仓库·hadoop·dataworks·maxcompute·odps
Shadow(⊙o⊙)9 小时前
MySQL内置函数
数据库·mysql
笃行35010 小时前
金仓 KingbaseES PL/SQL 开发全攻略:异常处理、数据类型、调试优化与过程语句
数据库
快乐的木子李11 小时前
mysql-26.7.0-linux26.7.0下载安装
数据库·mysql