安装与使用 |
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 复制集部署方式。
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 ,则表示服务启动成功。
net stop MongoDB
mongod.exe --dbpath D:\mongodb\data\db --install -logpath D:\mongodb\log --serviceName MongoDB
其中,“ --logpath”用于指定日志的存放路径,“--serviceName”用于设置注册的服务名。
net start MongoDB
net stop MongoDB
mongod.exe --dbpath "D:\mongodb\data\db" --remove --serviceName "MongoDB"
在 Linux 系统上,MongoDB 同样是解压后启动服务即可使用。
tar -zxf mongodb-xxxxxxx.tgz
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}
启动服务后,命令提示符窗口中提示信息为 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 开启安全控制的步骤。
以 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中的所有数据库开启安全控制,在访问和使用该目录下的数据库时,您就需要输入已设置的用户名密码才可连接成功。
注:如果不开启安全控制,用户账户并未启用,数据库还是匿名访问状态。
首先创建管理员用户和数据库。其中角色 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,以及具有读写权限的数据库,不能连接管理员用户和数据库。