Ubuntu16.04在线安装MongoDB详细教程
前言
根据【百度百科】对 MongoDB 数据库的定义:
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式(可以理解为伪JSON),因此可以存储比较复杂的数据类型。MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
一言以蔽之,MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。
因为 MongoDB 本身并不算大,所以我们不需要下载源文件,直接使用命令行在线进行安装即可。而且我们推荐使用命令行进行在线安装,这样可以避免离线安装产生的许多问题。
在线安装的话,当然是通过国内的镜像站进行安装,这样速度比较靠谱。清华大学软件镜像站对 MongoDB 的安装描述得比较详细,并且提供了 Debian、Ubuntu、CentOS等系统的安装方法,操作步骤简单明了。
这里我们以 Ubuntu16.04 系统为例,详细地介绍在线安装 MongoDB 的基本流程。
如果是 CentOS 等其他 Linux 系统的用户,直接拉到文章底部查看参考文章的第一个链接查看“清华大学镜像站-MongoDB使用帮助”。
安装流程
信任MongoDB公钥
我们打开命令行,将 MongoDB 的 GPG 公钥导入我们的包管理器中,这样在接下来的安装过程中 MongoDB 才会得到信任。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
创建列表文件
我们需要创建一个列表文件 mongodb.list,往其中输入 MongoDB 的下载信息,文件的位置默认放在“/etc/apt/sources.list.d/”目录下。
当然我们可以使用 touch 命令创建这个文件,然后将下载信息输入进去。但是网上的教程基本上都是使用“管道——输出”的方式将创建文件和输入信息的操作一步到位。不得不说,这个方法还是很厉害的。
echo "deb https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu xenial/mongodb-org/stable multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list
“|”是管道命令操作符,简称管道符。利用 Linux 所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。
上面的做法是自动获取镜像站里指定的稳定版本(一般是最新版)然后进行安装,那如果我们需要安装 MongoDB 以前的版本呢,比如 MongoDB 3.6这种特定版本?
其实镜像站里有特定版本的安装路径的,我们通过分析镜像站给的下载链接就可以找到。
- https://mirrors.tuna.tsinghua.edu.cn 表示的是清华镜像站
- /mongodb/apt/ubuntu 表示的是镜像站里的 MongoDB 通过 apt 包安装给 Ubuntu系统
- xenial 表示 Ubuntu16.04 LTS系统的内核
- /mongodb-org/stable multiverse 表示的是安装 MongoDB 的指定稳定版本
我们就沿着这个 URL 进行寻找,最终在这个链接下看到了其他的 MongoDB 版本。
https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu/dists/xenial/mongodb-org/
好了,接下来就照猫画虎,指定安装 MongoDB 3.6 版本。这里 list 文件我命名为 mongodb-org-3.6.list,方便以后提醒我安装的是 3.6 版本。
echo "deb https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
生成 list 文件之后,我们可以查看一下 list 文件的内容,看看是不是指定的 3.6 版本。
cat /etc/apt/sources.list.d/mongodb-org-3.6.list
安装MongoDB
我们已经指定好了安装 MongoDB 的版本,接下来就是最后一步安装了。
我们先更新一下 apt 包管理器,接着安装 nongodb-org 即可。
sudo apt-get update
sudo apt-get install -y mongodb-org
MongoDB 安装成功之后,我们可以在命令行中查看 MongoDB 版本。
mongo -version
可以看到,我们安装的是 MongoDB 3.6.17 版本,大功告成。
常见问题
执行 apt-get update 时提示 GPG 错误:找不到公钥
GPG error: https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu xenial/mongodb-org/3.6 Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 58712A2291FA4AD5
这是因为我们的服务器没有 58712A2291FA4AD5 这个公钥,我们把这个公钥添加到服务器就行了。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 58712A2291FA4AD5
这里我的服务器只缺失了 58712A2291FA4AD5 这个公钥,如果缺失多个公钥,一一将其添加进入即可。
接着我们重新执行 apt-get update命令,可以看到,更新已经成功了。