零基础学会MongoDB启动与停止

START

一、命令行方式启动和参数

1、Windows系统命令行启动MongoDB

打开安装目录,双击mongo.exe

image-20210323164257290

MongoDB4.4,关闭MongoDB窗口,服务器不会关闭!

2、Linux系统命令行启动MongoDB

第一步,新建MongoDB数据库文件存放的路径,这里新建/mongodb/data,使用命令如下:

image-20210323171117096

-p参数表示需要时创建上层目录,如目录早已存在不当做错误。

然后查看MongoDB的启动可执行文件mongodb在哪个路径,使用命令:

image-20210323171230776

我们是通过在线仓库yum安装的,找到的可执行文件路径为/usr/bin,如果是官网安装包解压安装的话,解压路径就是安装路径。因为我们的mongod可执行文件的路径是/usr/bin/mongod,所以启动命令为:

/usr/bin/mongod --dbpath==/mongodb/data

–dbpath参数值是我们第一步新建的用来指定存放数据文件的文件夹。

Linux 中想要在任何路径下不带 MongoDB 安装路径启MongoDB ,需要把 MongoDB的安装路径中的 bin 目录添加到环境变量。如果是通过yum命令等在线安装的方式安装的MongoDB,已经自动把 MongoDB 的安装路径中的 bin 目录添加到环境变量中,所以可以在任何路径下通过以下命令启动 MongoDB:

mongod --dbpath==/mongodb/data

MongoDB启动界面

image-20210323183733268

二、启动参数

使用 mongod 命令启动 MongoDB 数据库服务时可以设置非常多的参数。默认情况下,最重要的参数就是数据库文件存放的路径/data/db ,只要/data/db 路径有访问权限就能启动MongoDB服务。其他参数可适当选用。

mongod 的启动参数说明如下。

1.基本配置

–dbpath 参数:指定数据库文件保存路径,默认为/data/db

–port 参数:指定服务端口号,默认端口 27017

–bind_ip 参数:限制监听 ip ,指定多个 ip 时用逗号隔开

–fork:以守护进程的方式运行MongoDB ,创建服务器进程

还有许多其他参数,这里不一一列出

2.复制参数

–fastsync:从一个dbpath里启用从库里复制服务,该dbpath的数据库是主库的快照。可用于快速启用同步。

–autoresync:如果从库与主库同步数据差得多,自动重新同步。

–oplogSize参数:设置oplog的大小(MB)。

3.主从参数

–master:主库模式

–slave:从库模式

–source参数:从库端口号

–only参数:指定单一的数据库复制

–slavedelay参数:设置从库同步主库的延迟时间

4.副本集参数

–replSet参数:设置副本集名称。

–configsvr:声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb。

–shardsvr:声明这是一个集群的分片,默认端口号27018。

–noMoveParanoria:关闭paranoid模式。

三、配置文件方式启动

我们已经学习了如何用命令行启动MongoDB服务,在这个过程中需要配置参数,例如数据库文件存放路径,以及日志log文件存放路径等。但是如果几个用户共同管理MongoDB,当有参数变化时,需要随时相互交流沟通,井更新启动 MongoDB 的命令行,而且命令行容易输入错误, MongoDB 的管理和维护造成了不便。针对这种情 况,MongoDB 提供了读取启动配置文件的方式来启动数据库。在生产环境中我们也建议使用这种方式来管理启动 MongoDB。

yum 命令等在线安装方式安装的 MongoDB 会自动生成一个/etc/mongod.conf 配置文件,使用 cat 命令查看配置文件:

image-20210323190851207

配置文件内容为:

image-20210323191051328

注:由于本人虚拟机配置的桥接模式出了问题,导致ping不通网络,故不能使用PuTTY连接装有MongoDB的CentOS7,只能直接在CentOS7上使用命令,从而导致截图不全!

#表示是注释内容,用于说明配置文件的参数作用。更多的配置参数可查看官网文档http://docs.mongodb.org/manual/reference/configuration-options/。基本日志的参数分为几大块,分别是日志配置systemLog 存储路径配置 storage 、网络配置 net ,以及进程管理processManagement。

使用配置文件启动MongoDB:

image-20210323192143219

image-20210323192351567

注:这个命令在 Windows 系统、 Linux 系统以及 Mac OS 系统中通用。

四、启动MongoDB客户端

mongo.exe 就是客户端的启动程序,只要找到 mongo 的可执行文件运行,即可进入 MongoDB 的客户端。 一般来说, mongo 可执行文件与 mongod 服务端启动可执行文件在同一个目录下。

1.Windows 系统

进入mongodb安装目录,双击mongo.exe即可启动MongoDB 的客户端。

或者

image-20210325161020868 image-20210325161128260

2.Linux系统

进入安装 目录下的 bin 目录中,执行 mongo 命令即可(切记需要保持服务端开启的状态下)

image-20210323192756580

image-20210323192817657

五、关闭MongoDB

1.Windows系统

方式一:关闭当前客户端窗口[不推荐]

方式二:在当前客户端窗口使用Ctrl+C,关闭客户端。[推荐]

image-20210323193626124

方式三:进入mongo客户端运行命令停止

进入 mongodb 安装目录下的 bin 目录,运行客户端。然后使用admin 用户 ,使用命令 shutdown Server 关闭,同时关闭服务端和客户端
image-20210323194146227

image-20210323194453301

2.Linux系统

方式一:在当前客户端窗口使用 Ctrl+C ,关闭客户端

Ctrl+C 命令在 Shell 界面里也是结束操作的意思。在当前 MongoDB 服务端 Shell 窗口使用Ctrl+C, MongoDB 会自己做清理退出,把没有写好的数据写完成,并关闭 MongoDB 客户端。

image-20210323195104832

方式二:进入mongo客户端运行命令停止,同时关闭服务端和客户端。(推荐):

进入 mongo 执行文件所在的 bin 目录,运行客户端。然后使用admin 用户,使用命令 shutdown Server 关闭。完整代码如下:

cd /usr/bin
mongo
use admin
db.shutdownSever();

结果截图:

image-20210323195529822

方式三:Kill命令停止进程:

使用 kill 命令停止 MongoDB 数据库实例,必须现找到实例的进程,使用命令:

ps aux|grep mongod

image-20210323200549819

我们看到执行启动 mongod 命令的进程号 PID 1563 ,这个就是 MongoDB 数据库实例的进程,然后可以使用 kill-2 PID 或者 kill-15 PID 。我这里使用命令:kill -2 1563

kill -2 1563

kill 命令带数字参数,数字表示信号声明,详情可用 kill -l查看。-2和-15 都会等MongoDB 处理完事情释放相应资源后再停止。 kill -9 是马上停止进程,不要用 kill -9 来杀死MongoDB进程,否则很可能导致MongoDB的数据损坏。

六、设置MongoDB开机启动

1.Windows系统

本人安装的是MongoDB 4.4版本,默认自启动,无需手动设置!

image-20210323201204320

2.Linux系统

在这里插入图片描述方式一:在/etc/init.d目录下创建脚本(推荐)

在这里插入图片描述方式二:在/etc/rc.local配置

七、修复未正常关闭的MongoDB

​ MongoDB 如果未正常关闭, 会导致无法启动。

1.现象

MongoDB 服务无法启动,弹出框报错: Windows 无法启动 MongoDB服务 错误 1067: 进程意外终止。在事件查看器中可看到该错误 :MongoDB 服务因无法创建另一个系统信号灯,服务特定错误而停止。

2.解决方法

进入 MongoDB 安装目录/data/ ,将此文件夹下的 mongod.lock 删除,使用该方法 MongoDB 服务可以启动起来。 Linux 系统可以使用 find / -name ‘mongod.lock’ 查找路径,数据方面不会受到影响。mongod.lock 文件是 MongoDB 服务端启动后在硬盘中创建的一个锁文件,如果是正常退出 MongoDB 服务,该文件即使还存在,也不会影响下一次启动 MongoDB服务。

这个文件还会记录 MongoDB 在运行过程中的一些状态,以便在正常重新启动服务时能够获取异常信息提示。

删除 lock 文件之后, 如果有损坏文档需要使用 mongod -repair 令修复一次,再正常启动。修复数据库的实际过程很简单:将所有的文档导出后马上导入,忽略无效的文档,完成后会重建索引 。因为所有数据都要验证,所有索引都要重建,数据量大的话,会花费较多 时间 。数据量大的情况下,临时修复目录所在磁盘空间一定要大,否则会出现磁盘容量不够的提示,无法修复。

END

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值