Linux系统下安装MongoDB


Linux系统下MongoDB的安装

1.MongoDB简介

MongoDB是用C++语言编写的非关系型数据库。特点是高性能、易部署、易使用,存储数据十分方便,主要特性有:

  • 面向集合存储,易于存储对象类型的数据
  • 模式自由
  • 支持动态查询
  • 支持完全索引,包含内部对象
  • 支持复制和故障恢复
  • 使用高效的二进制数据存储,包括大型对象
  • 文件存储格式为BSON(一种JSON的扩展)

2.MongoDB与关系型数据库对比

对比项MongoDBMySQL Oracle
集合二维表table
表的一行数据文档document一条记录record
表字段键key字段field
字段值值value值value
主外键PK,FK
灵活度扩展性极高

逻辑结构关系对比

关系型数据库:
MySQL数据库(database)、表(table)、记录(rows)三个层次概念组成。

非关系型数据库:
MongoDB数据库(database)、集合(collection)、文档对象(document)三个层次概念组成。

MongoDB里的集合对应于关系型数据库里的表,但是集合中没有列、行和关系的概念,集合中只有文档,一个文档就相当于一条记录,这体现了模式自由的特点。

3.MongoDB基本概念

文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库系统中的行(但是比行要复杂的多);
集合(collection)就是一组文档,如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表;

MongoDB的单个实例可以容纳多个独立的数据库,每一个数据库都有自己的集合和权限。
MongoDB自带简洁但功能强大的JavaScript shell,这个工具对于管理MongoDB实例和操作数据作用非常大;
每一个文档都有一个特殊的键"_id",它在文档所处的集合中是唯一的,相当于关系数据库中的表的主键。

4.MongoDB数据类型

数据类型描述举例
null表示空值或未定义的对象{“x”:null}
布尔值真或假:true或false{“x”:true}
32位整数32位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数
64位整数64位整数。shell是不支持该类型的,shell中默认会转换成64位浮点数
64位浮点数64位浮点数。shell中的数字就是这一种类型{“x”:3.14,“y”:3}
字符串UTF-8字符串{“foo”:“bar”}
符号shell不支持,shell会将数据库中的符号类型的数据自动转换成字符串
对象id文档的12字节的唯一id{“id”:ObjectId()}
日期从标准纪元开始的毫秒数{“date”:new Date()}
正则表达式文档中可以包含正则表达式,遵循JavaScript的语法{“foo”:/foobar/i}
代码文档中可以包含JavaScript代码{“x”:function(){}}
未定义undefined{“x”:undefined}
数组值的集合或者列表{“arr”: [“a”,“b”]}
内嵌文档文档可以作为文档中某个key的value{“x”:{“foo”:“bar”}}

5.使用RPM包(推荐)

5.1配置包管理系统

Create a /etc/yum.repos.d/mongodb-org-4.0.repo file so that you can install MongoDB directly using yum.
创建/etc/yum.repos.d/mongodb-org-4.0.repo文件以便直接使用yum安装MongoDB。

[solang@solang ~]$ sudo vi /etc/yum.repos.d/mongodb-org-4.0.repo

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

5.2.安装MongoDB包

[solang@solang ~]$ sudo yum install -y mongodb-org
[solang@solang ~]$ sudo yum install -y mongodb-org-4.0.4 mongodb-org-server-4.0.4 mongodb-org-shell-4.0.4 mongodb-org-mongos-4.0.4 mongodb-org-tools-4.0.4

You can specify any available version of MongoDB. However yum upgrades the packages when a newer version becomes available. To prevent unintended upgrades, pin the package. To pin a package, add the following exclude directive to your /etc/yum.conf file:
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

您可以指定任何可用的MongoDB版本。 但是,当更新版本可用时,yum会升级软件包。 为防止意外升级,将包固定。 要固定包,将以下exclude指令添加到/etc/yum.conf文件中

exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

5.3目录和权限

By default, MongoDB instance stores:

  • its data files in /var/lib/mongo
  • its log files in /var/log/mongodb

默认情况下,MongoDB实例存储,data数据文件和log日志文件存放目录

By default, MongoDB runs using the mongod user account. If you change the user that runs the MongoDB process, you must also modify the permission to the /var/lib/mongo and /var/log/mongodbdirectories to give this user access to these directories.

默认情况下,MongoDB使用mongod用户帐户运行。 如果更改运行MongoDB进程的用户,则还必须修改/var/lib/mongo/var/log/mongodb目录的权限,以授予此用户访问这些目录的权限。

To specify a different log file directory and data file directory, edit the systemLog.path and storage.dbPath settings in the /etc/mongod.conf. Ensure that the user running MongoDB has access to these directories.

要指定其他日志文件目录和数据文件目录,请编辑/etc/mongod.conf中的systemLog.pathstorage.dbPath设置。 确保运行MongoDB的用户可以访问这些目录。

5.4运行MongoDB过程步骤

5.4.1启动MongoDB

[solang@solang ~]$ sudo service mongod start
Redirecting to /bin/systemctl start mongod.service

5.4.2验证MongoDB启动成功

[solang@solang ~]$ sudo cat /var/log/mongodb/mongod.log

2018-11-10T20:33:23.906+0800 I NETWORK  [initandlisten] waiting for connections on port 27017

有一行日志内容

[initandlisten] waiting for connections on port <port>

where <port> is the port configured in /etc/mongod.conf, 27017 by default.

5.4.3开机自动启动

开机MongoDB自启动

You can optionally ensure that MongoDB will start following a system reboot by issuing the following command:
sudo chkconfig mongod on
您可以选择通过发出以下命令来确保MongoDB将在系统重新启动后启动

sudo chkconfig mongod on

5.4.4停止MongoDB

[solang@solang ~]$ sudo service mongod stop

5.4.5重启MongoDB

[solang@solang ~]$ sudo service mongod restart

5.4.6使用mongo shell

[solang@solang ~]$ mongo

5.5卸载MongoDB过程步骤

5.5.1停止MongoDB

[solang@solang ~]$ sudo service mongod stop

5.5.2删除包

[solang@solang ~]$ sudo yum erase $(rpm -qa | grep mongodb-org)

5.5.3删除数据目录

删除日志存放目录和数据存放目录

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo
[solang@solang ~]$ sudo rm -r /var/log/mongodb
[solang@solang ~]$ sudo rm -r /var/lib/mongo

6.使用tar包

6.1安装依赖包

[solang@solang ~]$ sudo yum install libcurl openssl

6.2下载tar包

MongoDB Download Center

由于Linux系统使用的是CentOS7.4,操作系统选择RHEL 7.0 Linux 64-bit x64

MongoDB下载tar包

[solang@solang ~]$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.4.tgz

6.3解压到安装目录

[solang@solang ~]$ tar -zxvf mongodb-linux-x86_64-rhel70-4.0.4.tgz -C /usr/local/app/

[solang@solang ~]$ cd /usr/local/app/
[solang@solang app]$ mv mongodb-linux-x86_64-rhel70-4.0.4/ mongodb-4.0.4/

6.4设置环境变量

[solang@solang ~]$ vi .bash_profile

export MONGODB_HOME=/usr/local/app/mongodb-4.0.4
export PATH=$MONGODB_HOME/bin:$PATH

[solang@solang ~]$ source .bash_profile

6.5运行MongoDB

If you installed manually by downloading the tarballs, you can create the directories using mkdir -p<directory> or sudo mkdir -p <directory> depending on the user that will run MongoDB. (See your linux man pages for information on mkdir and sudo.)
如果通过下载tar包手动安装,则可以使用mkdir -p <directory>sudo mkdir -p <directory>创建目录,具体取决于将运行MongoDB的用户。(有关mkdirsudo的信息,请参阅linux手册页。)

MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以需要手动创建data目录,并在data目录中创建db目录。

注意:/data/db是MongoDB默认的启动的数据库路径(--dbpath)。如果你的数据库目录不是/data/db,可以通过mongod --dbpath 目录来指定。

[solang@solang ~]$ sudo mkdir -p /data/db

## 设置赋予目录读写权限
[solang@solang data]$ sudo chmod o+rwx /data/db

启动MongoDB

[solang@solang data]$ mongod

重新打开一个命令行窗口,启动mongo shell

[solang@solang ~]$ mongo

本文参考:
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值