在CentOS7上安装MongoDB(简易版)
注意:笔者测试环境CentOS7
,为了偷懒和内容的简洁性直接使用的root用户,如果你使用非root用户需要在命令前加上sodu
对上文<MongoDB数据库的安装及基本配置使用(CentOS7)>的简易版的补充内容
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
1. 添加MongoDB仓库
CentOS默认仓库的包中并未含mongodb-org
,所以我们需要用vi编辑器创建一个.repo
文件为接下来yum
安装做装备
vi /etc/yum.repos.d/mongodb-org.repo
把这些内容搞进去
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
保存并退出
在我们使用yum安装前可以先使用命令
yum repolist
查看本地是否已经包含了mongodb-org包了
. . . repo id repo name base/7/x86_64 CentOS-7 - Base extras/7/x86_64 CentOS-7 - Extras mongodb-org-3.2/7/x86_64 MongoDB Repository updates/7/x86_64 CentOS-7 - Updates . . .
如果找到上面的包信息说明已经没有问题了
2. 开始安装MongoDB
yum install mongodb-org
安装过程中会出现两次Is this ok [y/N]:
,依次输入Y
和ENTER
键即可
安装完成后使用systemctl
命令启动
systemctl start mongod
同样systemctl reload mongod
可以重启服务,systemctl stop mongod
可以停止服务
使用tail
命令可以检查MongoDB服务的启动情况
tail /var/log/mongodb/mongod.log
. . . [initandlisten] waiting for connections on port 27017
出现waiting for a connection 说明MongoDB服务已经成功启动了
输入mongo
可以使用MongoDB Shell(命令行工具)
mongo
注意: 当你运行MongoDB Shell的时候你可以会遇到一些像下面的警告信息:
** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
解决方法
vi /etc/security/limits.d/20-nproc.conf在最后一行添加
mongod soft nproc 32000修改完记得要重启服务
systemctl restart mongod此时再次连接MongoDB Shell应该不会再出现该错误了
更多关于MongDB Shell的使用帮助可以使用help()命令获得
db.help()
DB methods: db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ] db.auth(username, password) db.cloneDatabase(fromhost) db.commandHelp(name) returns the help for the command db.copyDatabase(fromdb, todb, fromhost) db.createCollection(name, { size : ..., capped : ..., max : ... } ) db.createUser(userDocument) db.currentOp() displays currently executing operations in the db db.dropDatabase() . . .
退出方法
exit
Bye
3. 验证自启动
systemctl is-enabled mongod; echo $?
enabled 0
如果是0就表示MongoDB服务未随机自动,使用命令让服务自动开启
systemctl enable mongod
4. 导入一个示例数据集(非安装必须项)
切换到有写入权限的目录
cd /tmp
用curl
下载json文件
curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json
使用mongoimport
工具导入数据
mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json
--db
指定的数据库, --collection
指定集合 --file
指定json数据源,执行命令后会显示结果
connected to: localhost imported 25359 documents
为了验证数据导入情况,我们可以进入MongoDB Shell
mongo
执行一条查询命令
db.restaurants.find().limit( 1 ).pretty()
结果
{ "_id" : ObjectId("57e0443b46af7966d1c8fa68"), "address" : { "building" : "1007", "coord" : [ -73.856077, 40.848447 ], "street" : "Morris Park Ave", "zipcode" : "10462" }, "borough" : "Bronx", "cuisine" : "Bakery", "grades" : [ { "date" : ISODate("2014-03-03T00:00:00Z"), "grade" : "A", "score" : 2 }, { "date" : ISODate("2013-09-11T00:00:00Z"), "grade" : "A", "score" : 6 }, { "date" : ISODate("2013-01-24T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-11-23T00:00:00Z"), "grade" : "A", "score" : 9 }, { "date" : ISODate("2011-03-10T00:00:00Z"), "grade" : "B", "score" : 14 } ], "name" : "Morris Park Bake Shop", "restaurant_id" : "30075445" }
删除集合可以使用drop()
命令来完成
db.restaurants.drop()
最后退出MongoDB Shell
exit