Linux平台安装MongoDB

MongoDB 分布式 文件存储 数据库 C++ 编写 提供可扩展的高性能数据存储解决方案
MongoDB 介于关系数据库和非关系数据库之间 是非关系数据库当中功能最丰富 最像关系数据库的
MongoDB 将数据存储为文档 数据结构由键值(key=>value)对组成
MongoDB 文档类似于 JSON 对象
字段值可包含其他文档 数组及文档数组
MongoDB 官网地址 //www.mongodb.com/
MongoDB 官方英文文档 //docs.mongodb.com/manual/
MongoDB 各平台下载 //www.mongodb.com/try/download/community
mongodb安装
//www.mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat/
CentOS7中安装mongodb4.4为例
参考文档
//docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
//mirrors.tuna.tsinghua.edu.cn/help/mongodb/
官方yum源(建议国内yum源)
#cat > /etc/yum.repos.d/mongodb-org-4.4.repo <<'EOF'
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF
安装mongodb
#yum install -y mongodb-org
或者安装指定版本
#yum install -y mongodb-org-4.4.4 mongodb-org-server-4.4.4 mongodb-org-shell-4.4.4 mongodb-org-mongos-4.4.4 mongodb-org-tools-4.4.4
查看mongodb版本
#mongo --version
MongoDB默认 数据文件 /var/lib/mongo目录
默认日志文件在/var/log/mongodb中
如果要修改  /etc/mongod.conf 配置中指定备用日志和数据文件目录
MongoDB默认将数据文件存放在/var/lib/momgo目录
默认日志文件存在/var/log/mongodb/mongod.log目录
如需修改可以在/etc/mongod.conf配置文件中指定目录
开启MongoDB
#sudo service mongod start #开启MongoDB
#sudo chkconfig mongod on #加入开机启动
#sudo service mongod restart #重启MongoDB

#systemctl start mongod.service
#systemctl stop mongod.service //停止
#systemctl restart mongod.service //重启

创建数据库目录
默认 MongoDB 启动后 初始化两个目录:
数据存储目录 /var/lib/mongodb
日志文件目录 /var/log/mongodb
启动前先创建这两个目录并设置当前用户有读写权限
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
sudo chown `whoami` /var/lib/mongo     # 设置权限
sudo chown `whoami` /var/log/mongodb   # 设置权限
启动 Mongodb 服务:
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
打开 /var/log/mongodb/mongod.log 文件看到 信息 说明启动成功
# tail -10f /var/log/mongodb/mongod.log


在终端输入 mongo  添加超级管理员
show dbs // 显示所有的数据库
在终端输入 mongo  添加超级管理员
show dbs // 显示所有的数据库
use admin // 切换到admin
db.createUser({user:'root',pwd:'iMongoR00tPassW0rd',roles:['userAdminAnyDatabase']})
db.auth('root','iMongoR00tPassW0rd')
切换数据库 增加用户
use openIM
db.createUser({user:'openIM',pwd:'iOpenIMPassW0rd',roles:['readWrite']})
db.auth('openIM','iOpenIMPassW0rd')

MongoDB 后台管理 Shell
mongodb 后台管理 需要先打开 mongodb 装目录的下的 bin 目录 然后执行 mongo 命令文件
MongoDB Shell 是 MongoDB 自带的交互式 Javascript shell 用来对 MongoDB 进行操作和管理的交互式环境
当进入 mongoDB 后台后 默认会链接到 test 文档(数据库)
$ cd /usr/local/mongodb4/bin
$ ./mongo
是个JavaScript shell 可以运行一些简单的算术运算
> 3+6
9
插入简单的数据 对插入的数据进行检索
> db.run.insert({x:10})
WriteResult({ "nInserted" : 1 })
> db.run.find()
停止 mongodb 可以使用以下命令
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown


centos mongodb卸载
卸载MongoDB
#sudo yum erase $(rpm -qa | grep mongodb-org) #卸载MongoDB
#sudo rm -r /var/log/mongodb #删除日志文件
#sudo rm -r /var/lib/mongo  #删除数据文件
安装MongoDB 5.0  需要依赖支持 AVX 指令集的 CPU
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
故障分析 | MongoDB 5.0 报错 Illegal instruction 解决
Linux 版本为 CentOS Linux release 7.2.1511 。
安装完最新的 mongodb-5.0.x 后,执行 mongo 或 mongod 直接报错 Illegal instruction 。
安装MongoDB 5.0  需要依赖支持 AVX 指令集的 CPU
目前支持 AVX 指令集的 CPU 型号可以参考链接 //en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX
#cat /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single fsgsbase tsc_adjust smep invpcid mpx rdseed smap clflushopt xsaveopt xsavec arat
没有 AVX



方法二:MongoDB 提供了 linux 各发行版本 64 位的安装包,官网 //www.mongodb.com/download-center#community

下载完安装包 解压 tgz(以下演示的是 64 位 Linux上的安装)
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz    # 下载
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz                                   # 解压
mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb                         # 将解压包拷贝到指定目录

MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:

export PATH=<mongodb-install-directory>/bin:$PATH

<mongodb-install-directory> 为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb



创建数据库目录

MongoDB的数据存储在data目录的db目录下 以下实例中将data目录创建于根目录下(/)。

注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。

mkdir -p /data/db


命令行中运行 MongoDB 服务

你可以再命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。

注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。

$ ./mongod


MongoDB后台管理 Shell

如需要进入MongoDB后台管理,需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。

MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。

当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):

$ cd /usr/local/mongodb/bin
$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
Welcome to the MongoDB shell.
&hellip;&hellip;

由于它是一个JavaScript shell,您可以运行一些简单的算术运算:

> 2+2
4
> 3+6
9

现在让插入一些简单的数据,并对插入的数据进行检索:

> db.facesoho.insert({x:10})
WriteResult({ "nInserted" : 1 })
> db.facesoho.find()
{ "_id" : ObjectId("5604ff74a274a611b0c990aa"), "x" : 10 }
>

第一个命令将数字 10 插入到 facesoho 集合的 x 字段中。



MongoDb web 用户界面

MongoDB 提供了简单的 HTTP 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 --rest 。

注意:该功能只适用于 MongoDB 3.2 及之前的早期版本。

$ ./mongod --dbpath=/data/db --rest

MongoDB 的 Web 界面访问端口比服务的端口多1000。

如果你的MongoDB运行端口使用默认的27017,你可以在端口号为28017访问web用户界面,即地址为:http://localhost:28017。