mongodb官方网站,提供社区版和企业版下载。
下面演示在Centos6x64上的安装过程
RHEL 6 Linux 64bit
注意 :我使用的是root
用户做演示,这样可以避免一些权限问题的困扰,这对linux不熟悉的同学来说可以专注MongoDB的学习。
可以使用我下面提供的地址直接下载,如果链接失效或者你想尝试其他版本,请移步到官网找到你想要的安装包.
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.0.tgz
tar zxf mongodb-linux-x86_64-rhel62-3.6.0.tgz
将mongodb移动到/usr/local/mongdb
文件夹
mv mongodb-linux-x86_64-rhel62-3.6.0 /usr/local/mongodb
创建数据库目录与日志文件目录
mkdir -p /mongodb/data/db
mkdir -p /mongodb/logs
进入到mongodb/bin目录启动mongod进程
[root@localhost ~]# cd /usr/local/mongdb/bin
[root@localhost bin]# ./mongod --dbpath=/mongodb/data/db/ --logpath=/mongodb/logs/mongodb.log --logappend --fork
例子中通过命令行指定了mongod
启动时的参数,mongod
就是mongodb的服务进程.
--dbpath
指定了数据文件存储的位置,这个目录可以不显示指定,但要保证存在一个/data/db
目录(默认存储数据目录),并且mongod要对该目录有足够的权限.
--logpath
只sing日志文件存储的目录,默认日志是输出到窗口中的。
--logappend
日志文件末尾添加
--fork
作为守护进程,在后台运行.这个参数只能再Linux平台上使用。
参数还有很多,可以通过--help
选项来查看可以传递的参数.
[root@localhost bin]# ./mongod --help
创建配置文件mongod.conf
[root@localhost bin]# mkdir /mongodb/conf
[root@localhost bin]# vim /mongodb/conf/mongod.conf
将下面的配置写入到mongod.conf
systemLog:
destination: file
path: "/mongodb/logs/mongodb.log"
logAppend: true
storage:
dbPath: "/mongodb/data/db/"
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1
port: 27017
启动mongod
进程
[root@localhost bin]# ./mongod --config /mongodb/conf/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 5054
child process started successfully, parent exiting
这里使用了--config
指定了配置文件,也可以使用-f
来指定配置文件
看到successfully
就表示已经启动成功了.
[root@localhost bin]# ps aux | grep mongod
root 5054 0.6 2.5 1046200 48632 ? Sl 11:28 0:02 ./mongod --config /mongodb/conf/mongod.conf
[root@localhost bin]# netstat -tnpl | grep mongod
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 5054/./mongod
安装包架构和操作系统架构不符,如果在32位的操作系统上运行64位的安装包,会提示下面的错误信息.
./mongod: cannot execute binary file
去下载正确的安装包就好了。
MongoDB需要一个存储数据的目录,如果目录不存在会报错。我们例子中指定的是/mongodb/data/db/
如果27017端口被占用了,那肯定启动不了
查看侦听27017端口的进程PID 然后kill掉该进程
[root@localhost bin]# lsof -i :27017
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 5054 root 11u IPv4 20211 0t0 TCP localhost:27017 (LISTEN)
将端口改为27018或者其他的数字
./mongod --port=27018
mongodb的客户端有很多种,如果你是再windows平台工作,可视化的客户端可以使用MongoVUE不过MongoVUE官网好像挂了,我更推荐使用robomongo
但是,在学习阶段一定要使用Mongodb安装包中提供的基于JavaScript的shell来操作mongodb
cd到mongodb/bin,执行命令./mongo
[root@localhost bin]# cd /usr/local/mongdb/bin
[root@localhost bin]# ./mongo 192.168.33.132:27017
2017-11-01T17:28:37.620+0800 I STORAGE [initandlisten]
2017-11-01T17:28:37.620+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-11-01T17:28:37.620+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-11-01T17:28:38.248+0800 I CONTROL [initandlisten]
2017-11-01T17:28:38.248+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-11-01T17:28:38.248+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-11-01T17:28:38.248+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-11-01T17:28:38.248+0800 I CONTROL [initandlisten]
2017-11-01T17:28:38.249+0800 I CONTROL [initandlisten]
2017-11-01T17:28:38.249+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-11-01T17:28:38.249+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-11-01T17:28:38.249+0800 I CONTROL [initandlisten]
2017-11-01T17:28:38.249+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-11-01T17:28:38.249+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
不指定参数时默认链接到127.0.0.1:27017
上面出现了很多警告,请暂时不要管它。
现在已经成功连接到mongodb了,你可以尝试输入一些命令来做一些操作,比如关闭mongod服务.
查看mongodb中都有哪些库
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
使用use命令切换到指定数据
> use admin
switched to db admin
关闭mongodb服务
> db.shutdownServer()
server should be down...
[root@localhost bin]# ps aux | grep mongod
root 5298 0.0 0.0 103328 844 pts/0 S+ 12:06 0:00 grep mongod
mongodb已经成功关闭,但最好还是重新启动它,除非你要放弃学习mongodb.