MongoDB环境搭建
MongoDB系列第四课:MongoDB数据库、集合、文档的操作
一、下载MongoDB
下载地址:https://www.mongodb.com/download-center/community
二、安装MongoDB
2.1 将下载的tgz包上传到Linux环境中
将tgz包上传到了自己创建的temp目录中。该目录位于/root目录中。
2.2 解压tgz文件
通过tar命令对tgz文件做解压处理:tar -zxvf xxx.tgz
2.3 移动MongoDB
将解压完的MongoDB目录移动到/usr/local目录中并改名为mongodb。
2.4 创建数据库目录
MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,需要手动创建data目录,并在data目录中创建db目录。data目录可以创建在任何位置。现将data目录创建键mongodb的根目录下。
至此Linux平台中的MongoDB就已经安装完毕。
三、MongoDB的启动
MongoDB的启动方式分为两种
1)前置启动
2)后置启动
无论哪种启动方式都需要执行bin目录中的mongod命令。MongoDB在启动时默认的查找数据库的路径为/data/db。如果我们数据库路径有变化,需要在该命令中通过--dbpath参数来指定db目录的路径(该路径可以是绝对路径,也可是相对路径)。
前置启动:
MongoDB的默认启动方式为前置启动。所谓前置启动就是MongoDB启动进程后会占用当前终端窗口。
进入到MongoDB的bin目录。
执行bin目录中的mongo命令。
由于我们的db目录放在mongodb的根下,所以在执行该命令时需要通过 --dbpath参数指定db路径。
启动后会在终端中输出一些启动信息。此时终端窗口已被启动进程所占用。
我们通过启动信息可以看到MongoDB默认的监听端口为27017
按Ctrl+C可结束启动进程关闭MongoDB
后置启动:
所谓后置启动就是以守护进程的方式启动MongoDB。需要在执行mongod命令中添加 --fork参数。
需要注意的是,--fork参数需要配合着--logpath或者是--syslog参数使用。
--logpath与--syslog参数是指定MongoDB的日志文件。
MongoDB的日志文件可以在系统中的任意位置,在mongodb目录下创建log目录,在该目录中创建一个名为mongodb.log的日志文件。
创建log目录
在log目录中创建mongodb.log日志文件
后置启动MongoDB
3.2 常见的启动参数
--quiet |
安静输出 |
--port |
指定服务端口号,默认端口27017 |
--bind |
绑定服务IP,若绑定127.0.0.1,则只能本机访问 |
--logpath |
指定MongoDB日志文件,注意是指定日志文件不是目录 |
--logappend |
使用追加的方式写日志 |
--fork |
守护进程的方式运行MongoDB,创建服务器进程 |
--auth |
启用验证 |
--config |
指定配置文件的路径,注意是指定配置文件不是目录 |
--journal |
启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里 |
3.3 配置文件
如果觉得在启动MongoDB时给定的参数项太多,那么我们也可以通过配置文件来配置启动参数,配置文件可以在任意目录中,配置文件的扩展名应为.conf,配置文件中使用key=value结构。在执行MongoDB时通过--config参数来指定需要加载的配置文件。
我们在mongodb目录下创建一个etc目录,在该目录中创建一个名为mongodb.conf的配置文件。
创建mongodb.conf配置文件
编辑配置文件,在配置文件中添加配置项:
1)指定db路径
2)指定日志文件
3)配置端口
4)配置后端启动
在配置文件中配置启动参数时需要注意的是,在参数前不再加--符号,直接以参数名作为key就可以。
通过加载配置文件启动MongoDB
3.4 配置环境变量
为了能够在任何目录中执行bin目录中的命令,我们可以将bin目录添加到环境变量中。
修改/etc/profile文件,添加export PATH=/usr/local/mongodb/bin:$PATH。/usr/local/monogdb/bin为MongoDB的bin目录的绝对路径。可根据自己的情况来指定。
重新加载/etc/profile文件: source /etc/profile
测试结果
四、MongoDB的关闭
4.1 使用Ctrl + C 关闭
如果我们的启动方式是前置启动,那么直接使用快捷键Ctrl+C就可以关闭MongoDB。这种关闭方式会等待当前进行中的的操作完成,所以依然是安全的关闭方式。
4.2 使用kill命令关闭
我们可以通过Linux的kill命令结束MongoDB进程,然后删除data目录中的mongod.lock文件,否则下次无法启动。
但是此方法不建议使用,因为会造成数据损坏现象。(旧的版本中有此问题)
4.3 使用MongoDB的函数关闭
在MongoDB中提供了两个关闭数据库的函数:
db.shutdownServer()
db.runCommand(“shutdown”)
如上两个方法都需要在admin库中执行,并且都是安全的关闭方式。
4.4 使用mongod命令关闭MongoDB【推荐】
mongod --shutdown --dbpath<数据库路径>
mongod 命令的 shutdown 选项能安全的关闭 MongoDB 服务
补充:
当我把mongodb部署到阿里云时,需要外网访问,于是在mongod.conf中加入了
bind_id=127.0.0.1,公网IP
结果始终启动不了:
[root@izbp16juwpbsbqepwbx7fuz mongodb]# mongod --config /usr/local/mongodb/etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 22243
ERROR: child process failed, exited with error number 48
To see additional information in this output, start without the "--fork" option.
最后发现,绑定公网IP是不行的,只能绑定局域网IP,如果不绑定局域网IP,那么则无法远程访问。
MongoDB环境搭建的更多相关文章
- 《OD大数据实战》MongoDB环境搭建
一.MongonDB环境搭建 1. 下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 2. 解压 tar -zxvf ...
- MongoDB——环境搭建
项目中需要将一些读多改少的数据存入到 MongoDB 数据库中来提高效率,于是简单学习一些MongoDB数据库的知识,来进行应对,也是对自己知识盲区进行补充.本文主要学习介绍MongoDB数据库在Li ...
- Windows下MongoDB环境搭建
MongoDB下载 登录MongoDB官网:www.mongodb.org:点击[Download MongoDB]按钮,进入如下所示界面 选择目标操作系统及其版本,比如这里选择的是64位的Windo ...
- Spring Data MongoDB 环境搭建
一.开发环境 spring版本:4.0.6.RELEASE spring-data-mongodb版本:1.4.1.RELEASE junit版本 4.11 maven版本:3.0.5 二.pom.x ...
- Python在VSCode环境抓取TuShare数据存入MongoDB环境搭建
本文出自:https://www.cnblogs.com/2186009311CFF/p/11573094.html 总览 此文分为5个部分 第一:Anaconda(下载和安装) 第二:VSCode( ...
- NoSql数据库初探-mongoDB环境搭建
NoSQL数据库一改关系型数据库的缺点,更容易的集成.分布式.无模式.故障恢复等特点,正在一步步餐食关系型数据库的市场,作为一个与时俱进的码农了解一下新技术是必须的,尤其是在读了<NoSql精粹 ...
- MongoDB环境搭建教程收集(待实践)
先收集,后续再实践. https://my.oschina.net/leezhen/blog/207262 http://www.360doc.com/content/11/0708/09/26606 ...
- MongoDB的环境搭建及启动
MongoDB环境搭建及配置 一.环境搭建 Mac:brew install mongodb 常见问题: Error: Permission denied @ unlink_internal 解决方案 ...
- mongodb的linux环境搭建
一.启动 [mongodb@node1 ~]$ mongod -f /data/config/shard1.confmongod: /usr/lib64/libcrypto.so.10: no ver ...
随机推荐
- AGC009C Division into Two
题意 有\(n\)个严格升序的数,请你分成两个集合\(A\)和\(B\),其中一个集合任意两数之差不小于\(x\),另一集合任意两数之差不小于\(y\). 问方案数,集合可以为空. $n \le 10 ...
- 检测ip代理有效性
转载及总结 转载:https://xw.qq.com/amphtml/20190428A05ZS200 1.telnet 方法 经过测试,会看到存在以下问题: 即使一些代理商能够用telnet测试过关 ...
- Hadoop 3.2.1 win10 64位系统 vs2015 编译
Hadoop 3.2.1 win10 64位系统 vs2015 编译 1 环境配置 1.1 JDK下载安装 1.1.1 下载 JDK 1.8 (jdk1.8.0 ...
- 【Python】使用Python处理RAW格式图片,并根据实际情况完成分组打包发送
背景 出游之后,朋友交换的照片格式大多是RAW格式,一些人想要JPG格式,但是百度云盘非会员的下载速度惨不忍睹,所以我想着通过微信群直接传(这个在事后也被证实不能完全解决问题,微信限制了每天传递文件的 ...
- 一个 TCP 连接可以发多少个 HTTP 请求
第一个问题 第二个问题 第三个问题 第四个问题 第五个问题 曾经有这么一道面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么? 相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 ...
- win系统动态载入DLL所需要的三个函数详解(LoadLibrary,GetProcAddress,FreeLibrary)
动态载入 DLL 动态载入方式是指在编译之前并不知道将会调用哪些 DLL 函数, 完全是在运行过程中根据需要决定应调用哪些函数. 方法是:用 LoadLibrary 函数加载动态链接库到内存,用 Ge ...
- 一个有趣的BUG/按钮disabled之后还能触发click事件
一个很有意思的Bug 某天测试同学再次向我反馈,你这个删除按钮虽然置灰了,但是还是可以点击啊? 我:????(黑人问号) 卧槽?不可能啊,按钮都disabled了,怎么还可以点击?还能触发click事 ...
- cnpm与npm指定有什么区别?
CNPM跟NPM用法完全一致,只是在执行命令时将故宫改为CNPM. 因为故宫安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果故宫的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事来自 ...
- C++ nth_element greater
#include <iostream>#include <algorithm>#include <deque>#include <vector>#inc ...
- ubuntu kylin 18.04 安装 Qt Creator 5.11
首先,去官网(https://download.qt.io/official_releases/qt/ )下载Qt Creator的安装包. 我下载的是5.11.1版本文件:qt-opensource ...