centos7.4下安装mongodb4.0(作者原来的不是很完善,文章末尾做了一些完善)

背景

  1. MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
  2. 在高负载的情况下,添加更多的节点,可以保证服务器性能。
  3. MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
  4. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

主要特点

  • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
  • 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName=“Sameer”,Address=“8 Gandhi Road”)来实现更快的排序。
  • 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
  • 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
  • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
  • Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
  • Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
  • Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
  • GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
  • MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
  • MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
  • MongoDB安装简单。

适用领域

MongoDB可以为Web应用提供可扩展的高性能数据存储解决方案。MongoDB主要适用领域有网站数据、分布式场景、数据缓存和JSON文件格式存储。适用大数据量、高并发、若事务的互联网应用,其内置的水平扩展机制提供了从几百万到十亿级别的数据处理能力,可以很好地满足Web2.0和移动互联网应用数据存储的要求。

系统环境

  • 操作系统:CentOs 7.4
  • 关闭防火墙及Selinux

部署安装

  1. 安装支持软件包
yum -y install openssl-devel libcurl
  1. 解压缩mongdb软件包
tar zxvf mongodb-linux-x86_64-rhel70-4.0.0.tgz -C /opt
  1. 重命名并移动目录至/usr/local/目录下
mv /opt/mongodb-linux-x86_64-rhel70-4.0.0 /usr/local/mongodb
  1. 创建mongodb的数据存储目录、日志存储目录及日志文件
mkdir -p /data/mongodb1
mkdir -p /data/logs/mongodb
touch /data/logs/mongodb/mongodb1.log
chmod -R 777 /data/logs/mongodb/mongodb1.log
  1. 调整shell资源的设置,以防频繁访问mongodb产生错误导致无法连接mongdb实例
ulimit -n 25000    #同一时刻最多开启文件数
ulimit -u 25000     #同一时刻最多开启程序数
  1. 创建配置文件(启动参数)
vim /usr/local/mongodb/bin/mongodb1.conf
port=27017
dbpath=/data/mongodb1
logpath=/data/logs/mongodb/mongodb1.log
logappend=true
fork=true
maxConns=5000
storageEngine=mmapv1
  1. 设置内核参数(当某个节点可用内存不足时,系统会从其他节点分配内存,如果简单的使用,可以不用执行此步骤)
echo 0 > /proc/sys/vm/zone_reclaim_mode
sysctl -w vm.zone_reclaim_mode=0
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
  1. MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:
vim /etc/profile
#在文件末尾追加以下语句
export PATH=/usr/local/mongodb/bin:$PATH\
  1. 重新加载环境变量
source /etc/profile
  1. 设置mongodb开机自启动
vim /etc/rc.local
#在文件末尾追加以下语句
rm -rf /data/mongodb1/mongodb.lock
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb1.conf #启动
  1. 启动mongodb
mongod -f /usr/local/mongodb/bin/mongodb1.conf

在这里插入图片描述
12. 停止mongodb

mongod -f /usr/local/mongodb/bin/mongodb1.conf --shutdown

在这里插入图片描述
到这个地方,之前的作者的内容就算完了。我们的安装就算完成了,但是还有个问题需要开启验证,我们需要初始化admin,因为现在show dbs,什么也没有,怎么办呢?
在这里插入图片描述
1.mongo进入mongo的交互环境中执行use admin
2.创建root用户名和密码

db.createUser(
   {
     user: "root",
     pwd: "rootpwd",
     roles: [ {role:"root", db:"admin"} ]
  }
 )

在这里插入图片描述
3.将mongod中的配置文件,开启验证,加入以下红圈内参数
在这里插入图片描述
4.重启mongdb服务
5.重启成功后,再次切入mongo的命令交互环境执行:
在这里插入图片描述
6.执行成功后,既可以看到mongo系统的数据库了
7.mongodb逻辑备份与恢复
逻辑备份与恢复

mongodump -u root -p rootpwd -d admin -o /data/dump --authenticationDatabase admin#以root用户备份admin数据库到目录/data/dump
mongorestore -h localhost -u root -p rootpwd -d test1 ./test_restore/ --authenticationDatabase admin# ./test_restore/为备份文件所在的位置

8.以管理员身份登录:

mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"
或者
mongo admin -u root -p rootpwd#admin为数据库的名字

9.mongo常用基本命令

show dbs;                  #查看全部数据库

show collections;          #显示当前数据库中的集合(类似关系数据库中的表)

show users;                #查看当前数据库的用户信息

use <db name>;             #切换数据库跟mysql一样

db;或者db.getName();        #查看当前所在数据库

db.help();                 #显示数据库操作命令,里面有很多的命令 
db.foo.help();             #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 
db.foo.find();             #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据) 
db.foo.find( { a : 1 } );  #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1

创建一个数据库

> use test;             #创建数据库
switched to db test
> db;               
test
> show dbs;           #检查数据库
admin 0.000GB
local 0.000GB

> db.test.insert({"_id":"520","name":"xiaoming"})         #创建表

WriteResult({ "nInserted" : 1 })

> db.createUser({user:"xiaoming",pwd:"123456",roles:[{role:"userAdmin",db:"test"}]})        #创建用户
Successfully added user: {
"user" : "xiaoming",
"roles" : [
{
"role" : "userAdmin",
"db" : "test"
}
]
}
db.removeUser("userName");         #删除用户
show users;                        #显示当前所有用户
db.dropDatabase();   #删除当前使用数据库

查看mongo版本

db.version();         #当前db版本

查看当前db的链接机器地址

> db.getMongo();
connection to 172.16.40.205:27017

直接yum安装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值