MongoDB单机安装
MongoDB是一个C++编写的基于分布式文件存储的数据库,是一个介于关系和非关系之间的数据库,当然也属于NoSQL的行列,存储方式和Redis类似,是json格式的kav-value存储方式,只是Redis是内存存储,而MongoDB是和普通的数据库目录一样存储在硬盘上
下面就在Linux上部署单节点的MongoDB,过程如下:
1. 在MongoDB官网下载软件包
可以看到这里有很多版本,默认选择第一个社区版本,然后下面操作系统默认是Windows,这里要选择Linux 然后根据操作系统是32位还是64位下载相应版本的软件包即可,这里下载的是mongodb-linux-x86_64-3.2.10.tgz,下载完成之后上传至Linux系统
2. 解压安装MongoDB
这里预定安装目录为/usr/local/mongodb,实际中可以自己确定,现在执行下面命令将MongoDB安装到指定位置
tar -xvzf mongodb-linux-x86_64-3.2.10.tgz
mv mongodb-linux-x86_64-3.2.10 /usr/local/mongodb
cd /usr/local/mongodb/
现在就已经安装并进入了mongodb的目录,这时候为了方便执行,可以把bin目录绝对路径添加到环境变量即可,具体过程不再叙述了
3. 创建数据目录
mkdir -p /data/db
mongodb数据库默认数据目录会存放在/data/db,也可以手动设置其他目录,但是无论默认还是自定义,数据目录必须手动创建,否则mongodb会报错。
4. 启动MongoDB服务
./bin/mongod
# MongoDB指定数据目录启动方式
./bin/mongod --dbpath=/usr/mongo_data
MongoDB数据库服务的默认端口是27017
另外MongoDB提供了简单的web用户界面,可以查看服务的状态等,默认不开启,可以在启动服务时添加参数,添加命令如下:
./bin/mongod --rest
启动后,默认的web管理端口是28017,这时候访问http://ip:28017即可看到管理界面
如果想让服务一直跑在后台,那么可以使用nohup或者screen都可以
Linux下启动mongodb(后台方式)
创建数据目录:
# mkdir /data/mongo
创建配置文件
# vi /data/mongo/mongodb.cnf
dbpath=/data/mongo/
logpath=/data/mongo/mongo.log
logappend=true
fork=true
port=27017
或者:不创建配置文件通过mongod参数启动也可以
1、配置文件方式启动mongo
# bin/mongod -f /data/mongo/mongodb.cnf
或者 # bin/mongod -f /data/mongo/mongodb.cnf & (放到后台执行)
2、参数启动mongo
bin/mongod -dbpath /data/mongo/ -logpath /data/mongo/mongo.log -logappend -fork -port 27017
终端输入出:
all output going to: /data/mongo/mongo.log
成功后即可以登录mongo
# bin/mongo
MongoDB shell version: 2.2.3
connecting to: test
>
现在mongo就可以正常使用了
如果让mongo随linux自动启动,在/etc/rc.local添加如下即可:
rm /data/mongo/mongod,.lock # 停止可能在运行的mongo
./bin/mongod -f /data/mongo/mongodb.cnf
或者
./bin/mongod -dbpath /data/mongo/ -logpath /data/mongo/mongo.log -logappend -fork -port 27017
附带提醒:
1、后台启动node命令: nohup node /.../app.js &
2、停止node和mongo都是用kill
3、如果出现启动报错 ERROR: child process failed, exited with error number 100,一般是由于上一次mongodb没有正常关闭,只需要rm /.../mongod.lock就好
在mongodb服务启动的情况下,可以执行命令 ./bin/mongo 进入mongodb的后台管理shell
第一次进入MongoDB shell时默认会选择test库,但是这是一个空库,后来进入时就会进入用户所操作的数据库,这时执行 show dbs 可以查看非空的数据库列表,可以看到默认只有local一个,其余的没有数据不显示,执行 db 可以查看当前选择的数据库;如果要切换选择数据库可以执行 use name1 ,这里可以切换到name1数据库,如果数据库存在则切换,如果不存在则直接创建,所以在mongodb中有一个显著的特点,所有的数据库和数据集合(数据表)都是在使用中创建,用户无需提前指定创建,退出mongodb shell可以执行命令 exit 或者 quit() 都可以