安装与使用

发送反馈


 

软件环境

操作系统

MongoDB 服务端可运行在 Linux、Windows 或 Mac OS X 平台,支持32位和64位系统,默认端口为27017。MongoDB 把数据存储在文件中(Linux 默认路径为/data/db,Windows 默认路径 C:\data\db),为提高效率使用内存映射文件进行管理。

软件版本

MongoDB 要求 2.6/3.x/4.x(最高 4.2.x)系列版本,其中仅 4.2.x 版本支持 Mongo 复制集部署方式。

Windows 系统上安装 MongoDB

MongoDB 是一个简单易用的产品,解压后即可使用。MongoDB 数据存储位置默认为 C:\data\db。如果不采用默认位置,启动服务前必须先创建数据存储位置,例如创建 D:\mongodb\data\db 为存储位置。

启动服务

在 MongoDB 安装目录 bin 文件夹下,执行 mongod 命令启动服务:

mongod.exe --dbpath D:\mongodb\data\db --port 27010

其中,“--dbpath”和“–-port”为可选参数,分别用于指定存储路径和端口号。如果不指定,默认的存储位置为 C:\data\db,默认端口号27017。

提示信息为 waiting for connections ,则表示服务启动成功。

停止服务

  1. 对 MongoDB 启动服务的命令提示窗口执行 Ctrl+C 即可关闭服务。
  2. 若 MongoDB 服务已注册为 Windows 系统服务,则可在服务管理器中停止服务或命令提示窗口中执行 stop 命令来停止服务。如停止名为 MongoDB 的系统服务:

net stop MongoDB

将 MongoDB 注册为 windows 系统服务

  1. 在 MongoDB 安装目录 bin 文件夹,执行如下命令将 MongoDB 注册为 Windows 系统服务:

mongod.exe --dbpath D:\mongodb\data\db --install -logpath D:\mongodb\log --serviceName  MongoDB

其中,“ --logpath”用于指定日志的存放路径,“--serviceName”用于设置注册的服务名。

  1. 注册后启动/服务,执行如下命令:

net start MongoDB    

net stop MongoDB     

  1. 删除已注册的 Windows 系统服务,可执行如下命令:

mongod.exe --dbpath "D:\mongodb\data\db" --remove --serviceName "MongoDB"

Linux 系统上安装 MongoDB

在 Linux 系统上,MongoDB 同样是解压后启动服务即可使用。

  1. 解压产品包,执行如下命令:

tar -zxf mongodb-xxxxxxx.tgz

  1. MongoDB 数据存储位置默认为/data/db。如果不采用默认位置,启动服务前必须先创建数据存储位置,例如在 mongodb 的解压路径下创建/data/db 为存储位置:

mkdir /data

mkdir /data/db

启动服务

请以 root 用户身份启动 MongoDB 服务,如按照默认的存储位置和端口号,可执行如下命令:

./mongodb-xxxxxxx/bin/mongod

提示信息为 waiting for connections ,则表示服务启动成功。

停止服务

可以采用以下三种方式停止 MongoDB 服务:

mongod --shutdown --dbpath /database/mongodb/data/

ps -ef | grep mongo  

kill -2 {PID}

使用 MongoDB

启动服务后,命令提示符窗口中提示信息为 waiting for connections 。

通过客户端连接服务

您可以通过 MongoDB 客户端连接服务以验证服务的可用性。打开 cmd.exe,执行如下命令:

mongo.exe --host localhost --port 27010

其中,“--host”用于指定已有MongoDB服务地址,“--port”用于指定已启动的端口。

创建数据库

您可以专门创建一个数据库,来存储地图瓦片:

use sampledb

此时,名为 sampledb 的数据库已被创建。但在数据库列表中仍然是不存在的,您需要在其中插入至少一个集合:

db.tile.insert({"name":"map"})

完成后,可以通过以下命令查看 MongoDB 中的数据库:

show dbs

查看当前使用的数据库:

db

也可查看某一数据库中所有集合:

show collections

您在分布式切图服务中添加切片库时,如果不指定数据库,则iServer会默认创建一个名为smtiles的数据库名并存储瓦片。

开启安全控制

为了保证您使用的数据库的安全性,您需要为该数据库设置用户名密码,通过验证才可访问。以下详细介绍 MongoDB 2.x 和 MongoDB 3.x 开启安全控制的步骤。

MongoDB 2.x

以 sampledb 数据库为例:

use sampledb

创建用户,并设置用户名密码,例如:

db.addUser({user:"user1",pwd:"password",roles:["readWrite","dbAdmin"]})

然后以安全模式重新启动MongoDB以开启权限控制,需添加--auth,如下:

mongod.exe --dbpath D:\mongodb\data\db --auth --port 27010

执行上述命令后,会对D:\mongodb\data\db中的所有数据库开启安全控制,在访问和使用该目录下的数据库时,您就需要输入已设置的用户名密码才可连接成功。

注:如果不开启安全控制,用户账户并未启用,数据库还是匿名访问状态。

MongoDB 3.x

首先创建管理员用户和数据库。其中角色 role 需为 MongoDB 内置管理员角色 userAdminAnyDatabase:

use admin

db.createUser(

  {

    user: "myUserAdmin",

    pwd: "abc123",

    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

  }

)

停止 MongoDB 服务,并以安全模式重新启动 MongoDB,添加--auth:

mongod.exe --dbpath D:\mongodb\data\db --auth --port 27010

通过 MongoDB 客户端连接服务,在 MongoDB 3.x 系列版本中创建用户、数据库等都需要先认证管理员用户及数据库。返回“1”表示认证成功。

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

认证成功后,再创建普通用户和数据库,例如:

use test

db.createUser(

  {

    user: "myTester",

    pwd: "xyz123",

    roles: [ { role: "readWrite", db: "test" },

             { role: "read", db: "reporting" } ]

  }

)

创建完成后您就可以在 iServer 中连接  Mongo DB 了。在 iServer 中连接 MongoDB 时,需连接普通用户 myTester,以及具有读写权限的数据库,不能连接管理员用户和数据库。