deepin 安装 mongodb 数据库

Deepin 之 MongoDB 安装

此教程将在 linux deepin 上从 Debian 7 WheezyDebian8 Jessie.deb 软件包安装 MongoDB 的社区版本。尽管 Debian系统有自己的 MongoDB 包,但使用官方的 MongoDB Community Edition 包可以确保拥有最新版本。MongoDB仅提供64位系统版本。由于 Deepin 是基于 Debian 的本地化衍生版,这里采用与 Debian MongoDB 的基本相似的安装步骤

一.相关程序安装包介绍

MongoDB 在他们自己的仓库中提供了官方支持的包。其存储库包含以下软件包

  • mongodb-org : 此包是元数据包,它可以实现自动安装下面的4个组件包
  • mongodb-org-mongos : 此包里面有 mongos 守护程序
  • mongodb-org-shell : 此包里面有 mongo shell 环境
  • mongodb-org-tools : 此包里面有 MongoDB 工具,mongoimportbsondumpmongodumpmongoexportmongofilesmongoimportmongooplogmongoperfmongorestoremongostat 以及 mongotop
  • mongodb-org-server : 包里面有 mongod 守护程序,以及相关的配置和初始化(init)脚本。

mongodb-org-server 软件包提供的初始化脚本使用 /etc/mongod.conf 配置文件启动 mongod

有关使用此初始化脚本的详细信息,请参阅运行 MongoDB Community Edition

这些软件包与 Debian 提供的 mongodbmongodb-server 以及 mongodb-clients 软件包相冲突。

默认情况下,软件包提供 /etc/mongod.conf 配置文件的 bind_ip z值为 127.0.0.1。在初始化副本集之前需要根据系统环境修改此设置。

二.安装 MongoDB

如果需要安装其他不同版本的 MongoDB,可以参考该版本的文档。本安装指南仅支持 64 位系统。

1.导入 MongoDB 公钥

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

001

2.创建 MongoDB 的软件源 /etc/apt/sources.list.d/mongodb-org-3.6.list
可以选择安装 Debian 7 的 Wheezy 仓库

echo "deb http://repo .mongodb.org/apt/debian wheezy/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

也可以使用 Debian 8 的 Jessie 仓库

echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

当前软件仅支持 Debian 7 的 Wheezy 和 Debian 8 的 Jessie

002

三.更新 apt-get

sudo apt-get update

003

四.安装 MongoDB 软件包

1.安装最新的稳定版本

sudo apt-get install -y mongodb-org

004

安装 MongoDB 的特定版本
要安装特定发行版,必须单独地指定每个组件包以及版本号,如下例所示:

sudo apt-get install -y mongodb-org = 3 .6.2 mongodb-org-server = 3 .6.2 mongodb-org-shell = 3 .6.2 mongodb-org-mongos = 3 .6.2 mongodb-org-tools = 3 .6.2

如果只安装 mongodb-org=3.6.2 且不包含组件包,则无论指定的是什么版本,安装的每个 MongoDB 软件包都是最新版本。

2.防止版本更新

通过 aot-get 虽然可以指定任何可用的 MongoDB 版本, 但是当更新的版本变得可用时将升级包。为防止意外升级,要将 MongoDB 的版本固定为当前安装的版本

echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

004

五.解决没有 /home/mongodb 目录的问题

sudo mkdir /home/mongodb
sudo chown -R mongodb:mongodb /home/mongodb

005

六.运行 MongoDB

大多数类 Unix 操作系统会限制会话可能使用的系统资源。这些限制可能会对 MongoDB 的操作产生负面影响。更多信息,可以参阅 UNIX ulimit 设置

MongoDB 实例默认将其数据文件存储在 /var/lib/mongodb 及其日志文件 /var/log/mongodb 中,并使用 mongodb 用户帐户运行。可以在 /etc/mongod.conf 中指定备用的日志和数据文目录。更多信息,可以参阅 systemLog.path
storage.dbPath

/var/lib/mongodb 目录
006
/var/log//mongodb 目录
006

如果要更改运行 MongoDB 进程的用户,则必须修改 /var/lib/mongodb/var/log/mongodb 目录的访问控制权限,以授予此用户对这些目录的访问权限。

1. 启动 MongoDB 服务

命令启动 MongoDB 的 mongod 服务项

sudo systemctl start mongod 

2. 验证 MongoDB是否安装成功

查看 MongoDB 的日志文件 /var/log/mongodb/mongod.log,可以看到类似这样的描述信息

2018-02-21T09:06:37.446+0800 I CONTROL  [initandlisten] MongoDB starting : pid=26029 port=27017 dbpath=/var/lib/mongodb 64-bit host=trsky-deepin
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten] db version v3.6.2
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten] git version: 489d177dbd0f0420a8ca04d39fd78d0a2c539420
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2d 9 Jul 2015
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten] modules: none
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten] build environment:
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten]     distmod: ubuntu1604
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten]     distarch: x86_64
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2018-02-21T09:06:37.447+0800 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { timeZoneInfo: "/usr/share/zoneinfo" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }

007

也可以通过命令过滤查看信息

cat /var/log/mongodb/mongod.log | grep port

008

默认端口是 27017

<port>mongod 监听的端口。如果修改了 配置文件 /etc/mongod.conf 中的 net.port 设置,则端口可能会有所不同。

如果修改了systemLog.path 配置文件选项,可以为该设置中指定的位置查找日志文件。

009

可能会在 mongod 输出中看到非严重警告。通过查看上面显示的日志行,就可以在对 MongoDB 进行初始评估期间安全地忽略这些警告。

关于执行 mongod 出现 shutting down with code:100 的问题

 trsky@trsky-deepin  /var/log/mongodb  mongod
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten] MongoDB starting : pid=12466 port=27017 dbpath=/data/db 64-bit host=trsky-deepin
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten] db version v3.6.2
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten] git version: 489d177dbd0f0420a8ca04d39fd78d0a2c539420
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2d 9 Jul 2015
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten] modules: none
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten] build environment:
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten]     distmod: ubuntu1604
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten]     distarch: x86_64
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2018-02-21T20:38:21.402+0800 I CONTROL  [initandlisten] options: {}
2018-02-21T20:38:21.427+0800 I STORAGE  [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
2018-02-21T20:38:21.427+0800 I CONTROL  [initandlisten] now exiting
2018-02-21T20:38:21.427+0800 I CONTROL  [initandlisten] shutting down with code:100

原因:exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating 报错。

解决:创建相应目录并赋予相应读写权限

sudo mkdir -p /data/db
sudo chmod -R 777 /data/db

3. 停止 MongoDB 服务

sudo systemctl stop mongod

4. 重启 MongoDB 服务

sudo systemctl restart mongod

5.设置开机启动或禁用 MOngoDB 开机自启
设置开机自启

sudo systemctl enable mongod

如果不想开机自启,也可以禁用开机启动

sudo systemctl disable mongod

6. 开始使用 MongoDB

如果想获取帮助, MongoDB 提供了开始指导。查看开始指南 可以获取有用的帮助信息。

在命令窗口输入 monogo 进入 MongoDB 交互模式, Control+C 或 输入exit 退出命令窗口,此时后台 mongod 必须在运行状态。

mongo

010

七.删除 MongoDB

要从系统中完全删除 MongoDB,必须删除 MongoDB 应用程序本身,配置文件以及包含数据和日志的任何目录。
Note:这个删除MongoDB过程是不可逆的,包括程序配置文件、数据库文件都将被删除。所以,删除前,请备份好配置文件和数据库文件。

1. 停止 MongoDB 服务

sudo systemctl stop mongod 

2.删除软件
移除已经安装的MongoDB程序

sudo apt-get purge mongodb-org*

3.删除数据目录
删除 MongoDB 数据库文件和日志文件

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

注意删除自己创建的数据目录

相关信息可以查看 MongoDB 官网提供的安装教程深度官网提供的教程


版权声明:本文为qq_36148847原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。