MongoDB单机部署

198 阅读7分钟

Windows系统中的安装启动

第一步:下载安装包

MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:

www.mongodb.com/try/downloa…

图片.png

图片.png

根据上图所示下载 zip 包。

提示:版本的选择:

MongoDB的版本命名规范如:x.y.z;

y为奇数时表示当前版本为开发版,如:1.5.2、4.1.13;

y为偶数时表示当前版本为稳定版,如:1.6.3、4.0.10;

z是修正版本号,数字越大越好。

详情:docs.mongodb.org/manual/rele…

第二步:解压安装启动

将压缩包解压到一个目录中。

在解压目录中,手动建立一个目录用于存放数据文件,如 data/db

方式1:命令行参数方式启动服务

在 bin 目录中打开命令行提示符,输入如下命令:

图片.png

mongod --dbpath=../data/db

图片.png

我们在启动信息中可以看到,mongoDB的默认端口是27017,如果我们想改变默认的启动端口,可以通过--port来指定端口。

为了方便我们每次启动,可以将安装目录的bin目录设置到环境变量的path中, bin 目录下是一些常用命令,比如 mongod 启动服务用的,

mongo 客户端连接服务用的。

方式2:配置方式启动服务

在解压目录中新建 config 文件夹,该文件夹中新建配置文件 mongod.conf ,内如参考如下:

storage:
  # The directory where the mongod instance stores its data. Default value is "\data\db" on Windows.
  dbPath: "E:\\Study\\DevelopTool\\mongodb\\data"
storage:
  # The directory where the mongod instance stores its data.Default value is "\data\db" on Windows.
  dbPath: E:/Study/DevelopTool/mongodb/data

详细配置项内容可以参考官方文档::www.mongodb.com/zh-cn/docs/…

注意:

  1. 配置文件中如果使用双引号,比如路径地址,自动会将双引号的内容转义.如果不转义,则会报错:
error-parsing-yaml-config-file-yaml-cpp-error-at-line-3-column-15-unknown-escape-character-d

解决:

a. 对 \ 换成 /\\

b. 如果路径中没有空格,则无需加引号。

  1. 配置文件中不能以Tab分割字段

解决:

将其转换成空格.

3.缩进问题

storage:后的内容缩进是两个空格

启动方式:

mongod -f ../config/mongod.conf

mongod --config ../config/mongod.conf

更多参数配置:

systemLog:
  destination: file
  # The path of the log file to which mongod or mongos should send all diagnostic logging information
  path: "E:/Study/DevelopTool/mongodb/log/mongod.log"
  logAppend: true
  
  
storage:
  journal:
    enabled: true
  # The directory where the mongod instance stores its data. Default Value is "/data/db".
  dbPath: "E:/Study/DevelopTool/mongodb/data"
net:
  # bindIp: 127.0.0.1
  port: 27017
setParameter:
  enableLocalhostAuthBypass: false
systemLog
  • destination: file

    • 设置日志输出的目的地为文件。这意味着 MongoDB 的日志信息将会被写入到指定的日志文件中,而不是输出到控制台或其他地方。
  • path: "E:/Study/DevelopTool/mongodb/log/mongod.log"

    • 指定日志文件的完整路径。在这个配置中,日志文件将位于 E:/Study/DevelopTool/mongodb/log/mongod.log。这个路径必须存在,并且 MongoDB 服务需要有权限写入该路径。
  • logAppend: true

    • 设置为 true 时,新的日志条目将会追加到现有的日志文件中,而不是覆盖原有的日志文件。这有助于保持日志的历史记录。
storage
  • journal:

    • enabled: true

      • 启用日志(journaling)功能。日志是一种预写式日志机制,可以在系统崩溃后帮助恢复数据,从而提高数据的安全性和持久性。
  • dbPath: "E:/Study/DevelopTool/mongodb/data"

    • 指定 MongoDB 数据文件存储的目录。在这个配置中,数据文件将存储在 E:/Study/DevelopTool/mongodb/data 目录下。这个目录也必须存在,并且 MongoDB 服务需要有权限访问该目录。
net
  • # bindIp: 127.0.0.1

    • 这是一个被注释掉的配置项。如果取消注释,它将限制 MongoDB 仅监听本地回环地址 127.0.0.1,这意味着只有来自本机的连接才能访问 MongoDB 服务。当前配置中,MongoDB 将监听所有可用的网络接口。
  • port: 27017

    • 指定 MongoDB 服务监听的端口号。默认情况下,MongoDB 使用 27017 端口。客户端应用程序需要使用这个端口号来连接到 MongoDB 服务。
setParameter
  • enableLocalhostAuthBypass: false

    • 如果设置为 true,则允许从 localhost 连接时绕过身份验证。设置为 false 表示即使是从 localhost 连接也需要通过身份验证。这提高了安全性,因为即使是本地连接也需要提供有效的凭据。

Shell连接(mongo命令)

下载的MongoDB 的版本是8.0.3 ,无法使用mongo命令,查了相关资料,原因在于,MongoDB 6.0 以后做出了重大改变,MongoDB 已经不再默认为你安装shell 工具,因此需要安装一个额外的shell:Install mongosh — MongoDB Shell,这个工具被称为 mongosh。

图片.png

前往 mongoshell 页面下载 mongoshell,解压放一个目录就行,把 mongosh 的解压目录也添加到环境变量,以后就可以用 mongosh 连接 MongoDB 了。

图片.png

在命令提示符输入以下shell命令即可完成登录.

mongosh

mongosh --host=127.0.0.1 --port=27017

查看已有数据库

show databases

退出MongoDB

exit

更多参数可以通过帮助查看:

mongosh --help

提示

MongoDB javascript shell是一个基于javascript的解释器,故是支持js程序的。

Compass-图形化界面客户端

到MongoDB官网下载MongoDB Compass,

地址:www.mongodb.com/try/downloa…

如果是下载安装版,则按照步骤安装;如果是下载加压缩版,直接解压,执行里面的 MongoDBCompassCommunity.exe 文件即可。

在打开的界面中,输入主机地址、端口等相关信息,点击连接

图片.png

图片.png

图片.png

Linux系统中的安装启动和连接

目标:在Linux中部署一个单机的MongoDB,作为生产环境下使用。

提示:和Windows下操作差不多。

步骤如下:

(1)先到官网下载压缩包 mongod-linux-x86_64-4.0.10.tgz 。

(2)上传压缩包到Linux中,解压到当前目录:

tar -xvf mongodb-linux-x86_64-4.0.10.tgz

(3)移动解压后的文件夹到指定的目录中:

mv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb

(4)新建几个目录,分别用来存储数据和日志:

#数据存储目录

mkdir -p /mongodb/single/data/db

#日志存储目录

mkdir -p /mongodb/single/log

(5)新建并修改配置文件

vi /mongodb/single/mongod.conf

配置文件的内容如下:

systemLog:

    #MongoDB发送所有日志输出的目标指定为文件

    # #The path of the log file to which mongod or mongos should send all diagnostic logging information

    destination: file

    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径

    path: "/mongodb/single/log/mongod.log"

    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。

    logAppend: true

storage:

    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。

    ##The directory where the mongod instance stores its data.Default Value is "/data/db".

    dbPath: "/mongodb/single/data/db"

    journal:

        #启用或禁用持久性日志以确保数据文件保持有效和可恢复。

        enabled: true

processManagement:

    #启用在后台运行mongos或mongod进程的守护进程模式。

    fork: true

net:

    #服务实例绑定的IP,默认是localhost

    bindIp: localhost,192.168.0.2
    #bindIp
    #绑定的端口,默认是27017

    port: 27017

(6)启动MongoDB服务

[root@bobohost single]# /usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.conf

about to fork child process, waiting until server is ready for connections.

forked process: 90384

child process started successfully, parent exiting

注意:

如果启动后不是 successfully ,则是启动失败了。原因基本上就是配置文件有问题。

通过进程来查看服务是否启动了:

[root@bobohost single]# ps -ef |grep mongod

root 90384 1 0 8月26 ? 00:02:13 /usr/local/mongdb/bin/mongod -f /mongodb/single/mongod.conf

(7)分别使用mongo命令和compass工具来连接测试。

提示:如果远程连接不上,需要配置防火墙放行,或直接关闭linux防火墙

#查看防火墙状态

systemctl status firewalld

#临时关闭防火墙

systemctl stop firewalld

#开机禁止启动防火墙

systemctl disable firewalld

(8)停止关闭服务

停止服务的方式有两种:快速关闭和标准关闭,下面依次说明:

(一)快速关闭方法(快速,简单,数据可能会出错)

目标:通过系统的kill命令直接杀死进程:

杀完要检查一下,避免有的没有杀掉。

#通过进程编号关闭节点

kill -2 54410

【补充】

如果一旦是因为数据损坏,则需要进行如下操作(了解):

1)删除lock文件:

rm -f /mongodb/single/data/db/*.lock

2)修复数据:

/usr/local/mongdb/bin/mongod --repair --dbpath=/mongodb/single/data/db

(二)标准的关闭方法(数据不容易出错,但麻烦):

目标:通过mongo客户端中的shutdownServer命令来关闭服务

主要的操作步骤参考如下:

//客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。

mongo --port 27017

//#切换到admin库

use admin

//关闭服务

db.shutdownServer()