您的位置:首页 > 数据库 > Mongodb

MongoDB安装与使用(基于Mac系统安装,其他系统类似)

2017-05-03 10:01 417 查看
1. 到官网下载资源包,这里下载3.4.4版本的,关于mongodb的版本,偶数说明为稳定版本,如这里下载的3.4,基数为开发版本,如3.5,稳定版本很少会增加新功能,通常只会进行漏洞修复;

2. 下载后,解压(tar zxf mongodb-linux-x86_64-rhel70-3.4.4.tgz)目录结构如下:



把这个目录移动到我自己的软件目录下,然后新建"data/db"用于存放数据文件,并创建一个软链接,方便执行不同版本的mongodb以进行使用



为了数据文件的可迁移性,不使用mongodb默认的"data/db"目录(MongoDB的默认数据文件目录为"/data/db"),在它的根目录平级目录新建一个db目录用于存放数据文件,因此,这样就需要在启动时增加"-dpath"来指定数据库目录:



3. 启动:

为了方便,这里增加一个配置文件conf来配置mongodb的启动参数信息,目录结构如下:



mongodb_conf是存放配置文件

mongodb_data是存放数据文件

mongodb_logs是存放mongodo的运行日志文件

配置文件内容如下(注意:配置的参数键区分大小写!!):



port: 配置监听端口,默认端口为27017

fork: 调用fork创建子进程,在后台运行MongoDB

logpath: 启动进行后,日志文件不存在则创建,存在则覆盖,因此更建议增加"--logappend"选项,或在配置文件增加一行: logappend=true

nohttpinterface: 启动后,MongoDB会默认在1000端口启动一个微型的HTTP服务器,它提供一些系统信息,这些没必要对外开放,开发时可以开启

bind_ip: 最好为内网地址,如果是集群,不能为127.0.0.1,否则不能集群中其他服务器不能访问,最好不要直接暴露MongoDB在外网,尽可能限制外部对MongoDB的访问。

quiet=true: 可以考虑过来一些无用日志信息,不过日志信息建议保留默认值(不设置即可),这样排除问题更方便

:

鉴于大多MongoDB的安全问题都与JavaSvript有关,因此,可以考虑完全禁止Javascript脚本执行,在配置文件增加一行: noscripting=true

在mongodb目录下的mongod可执行文件就是启动服务器的文件,现在启动mongodb(启动后最好习惯性去查看一下log文件,看看详细输出并及时排除),发现如下错误:



格式不正确,这里使用错了,这个是linux平台的包,应该使用针对OS X 的,重新下载OS X 64位的包,然后删除前面设置的软链接重新指向即可:





再次启动:



启动成功,现在data目录变为如下:



MongoDB在启动时,会把相关信息的文档写入local.startup_log这个集合中,可以看看:



可以看到有一个"storage.bson"文件,这是mongodb里的文档存放格式,BSON是一种轻量的二进制格式,数据库能理解BSON格式,BSON格式也是文档存放于磁盘中的格式。另外还有一个"mongod.lock"文件,用于阻止其他mongd进程使用此数据目录,在一台机器可以使用不同配置文件启动多个mongd进程,但是,每个进程的数据目录必须不一样,相互数据目录不能访问,就是通过这个lock文件来处理的,如果访问了,会出现类似错误:"Unale
to acquire lock for lockfilepath: ......./db/mongd.lock"。

现在使用mongo可执行shell文件(它是一个功能完备的JavaScript解析器,可以运行任意JavaScript程序)连接到mongod服务器看看:



默认会连接到test数据库,并将数据库连接赋值给全局变量db,因此,在下面可以使用db.version()来查看数据库版本号,可以运行"db"来看当前处于哪个数据库。

4. 关闭

关闭MongDB后台进程有如下两种方式:

1. 在admin数据库中执行命令: db.shutdownServer(),此时MongDB如有子节点在同步数据则在同步后关闭,若超时未同步完,则会停止失败,如要强制停止,执行: db.adminCommand({"shutdown": 1, "force": true}),这样,就会通过发送SIGINT或SIGTERM信号去强制安全停止进程,它将等待当前正在进行的操作或文件预分配结束,然后关闭所有已打开的连接,接着把缓存写入磁盘,最后停止。

2. sudo kill -9 <pid of mongod>,也相当于发送SIGINT或SIGTERM信号给后台进程

OK,在Mac平台的安装(更准确来说是配置吧)完成,在其他平台,如Linux、Soralis或Windows都差不多这个流程:

1. 下载对应平台的安装包

2. 解压,新建数据目录和日志目录

3. 新建配置文件

4. 启动使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: