更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux教程 > 在Debian 11/Debian 10系统上安装和配置MongoDB 6

在Debian 11/Debian 10系统上安装和配置MongoDB 6

更新时间:2023-01-25 16:28:48浏览次数:664+次

本文介绍如何在Debian 11/Debian 10系统上安装和配置MongoDB 6的方法。

系统要求

要启用安装和运行MongoDB,您需要以下CPU架构。

1]、对于x86_64微体系结构:

Sandy Bridge或更高版本Core处理器或Tiger Lake或更高的赛扬或奔腾处理器的Intel x86_64。

Bulldozer或更高版本处理器的AMD x86_64。

2]、ARM64微体系结构:

ARMv8.2-A或更高版本的微体系结构。

使用以下命令检查体系结构:

$ cat /proc/cpuinfo

processor: 0

vendor_id: GenuineIntel

cpu family: 6

model: 94

model name: Intel(R) Xeon(R) CPU E3-1275 v5 @ 3.60GHz

stepping: 3

microcode: 0xf0

cpu MHz: 3600.056

cache size: 16384 KB

安装和配置MongoDB 6的方法

1、添加MongoDB 6.0存储库

MongoDB提供两个主要版本:

Community edition:免费版。

Enterprise edition:作为Mongo Enterprise Advanced订阅的一部分提供。它提供了高级功能,如磁盘加密、Kerberos和LDAP支持、审计等。

在本文中,我们将安装Community edition,但由于默认存储库中没有提供它,因此我们需要将存储库添加到系统中。

安装所需的工具:

sudo apt install wget curl gnupg software-properties-common apt-transport-https ca-certificates lsb-release

首先,导入GPG密钥:

curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-6.gpg

现在将MongoDB 6.0存储库添加到系统中:

##对于Debian 11

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

##对于Debian 10

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

添加后,更新APT包索引:

sudo apt update

2、在Debian 11/Debian 10上安装MongoDB 6.0

添加存储库后,可以使用以下命令安装MongoDB 6.0:

sudo apt install mongodb-org

依赖关系树:

The following additional packages will be installed:

  mongodb-database-tools mongodb-mongosh mongodb-org-database

  mongodb-org-database-tools-extra mongodb-org-mongos

  mongodb-org-server mongodb-org-shell mongodb-org-tools

The following NEW packages will be installed:

  mongodb-database-tools mongodb-mongosh mongodb-org

  mongodb-org-database mongodb-org-database-tools-extra

  mongodb-org-mongos mongodb-org-server mongodb-org-shell

  mongodb-org-tools

0 upgraded, 9 newly installed, 0 to remove and 39 not upgraded.

Need to get 134 MB of archives.

After this operation, 458 MB of additional disk space will be used.

Do you want to continue? [Y/n] y

您还可以为每个组件安装特定版本:

sudo apt-get install -y mongodb-org=<version> mongodb-org-database=<version>  mongodb-org-server=<version>  mongodb-org-shell=<version>  mongodb-org-mongos=<version>  mongodb-org-tools=<version>

安装完成后,启动并启用服务:

sudo systemctl enable --now mongod

验证服务是否正在运行:

$ systemctl status mongod

 mongod.service - MongoDB Database Server

     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)

     Active: active (running)

检查MongoDB的可用版本:

$ mongod --version

db version v6.0.0

Build Info: {

    "version": "6.0.0",

    "gitVersion": "e61bf27c2f6a83fed36e5a13c008a32d563babe2",

    "modules": [],

    "allocator": "tcmalloc",

    "environment": {

        "distmod": "debian11",

        "distarch": "x86_64",

        "target_arch": "x86_64"

    }

}

3、在Debian 11/Debian 10上配置MongoDB 6.0

MongoDB将其配置文件存储在/etc/mongod.conf中。您可以在该文件中进行许多配置,例如数据库路径、日志路径、侦听端口、地址。在本文中,我们将进行以下配置。

1]、启用密码验证

安装后,MongoDB不为数据库提供密码保护。这可能会构成安全威胁,因为任何人都可以访问和使用数据库。要保护实例,需要创建用户并设置密码:

访问外壳:

mongosh

创建管理员用户:

use admin

db.createUser(

{

user: "mongouser",

pwd: passwordPrompt(), // or cleartext password

roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]

}

)

您需要为用户提供密码。设置完成后,退出shell并在配置文件中启用身份验证:

sudo vim /etc/mongod.conf

查找并取消注释安全部分,然后添加行,如下所示:

security:

    authorization: "enabled"

2]、启用远程访问

MongoDB默认监听localhost,若要更改此设置并使其能够监听IP地址,请编辑如下配置:

# network interfaces

net:

  port: 27017

  bindIp: 0.0.0.0

完成所需更改后,保存文件并重新启动服务:

sudo systemctl restart mongod

如果启用了防火墙,请允许端口通过防火墙:

sudo ufw allow 27017

4、在Debian 11/Debian 10上使用MongoDB 6.0

现在使用前面创建的管理员用户和密码访问MongoDB shell:

$ mongosh -u mongouser

Enter password:*********

Connecting to:mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.5.3

Using MongoDB:6.0.0

Using Mongosh:1.5.3

For mongosh info see:https://docs.mongodb.com/mongodb-shell/

test>

1]、创建数据库MongoDB

首先,列出可用的数据库:

> show dbs

admin   132.00 KiB

config   12.00 KiB

local    72.00 KiB

要在MongoDB中创建数据库,只需切换到一个不存在的数据库。例如:

> use sampledb

switched to db sampledb

2]、在MongoDB中创建集合

集合相当于SQL数据库中的表。要在MongoDB中创建表,请使用具有以下语法的命令:

db.userdetails.insertOne(

   {F_Name: "Computing",

    L_NAME: "ForGeeks",

    ID_NO: "124345",

     AGE: "49",

     TEL: "25465467187"

   }

)

创建后,列出可用集合:

> show collections

userdetails

3]、创建总体管理员

总体管理员能够访问和使用任何数据库。例如,先前创建的用户是一个整体管理员。要创建另一个管理员用户,请使用以下命令:

use admin

db.createUser(

  {

    user: 'admin',

    pwd: 'AdminPassW0rd',

    roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ]

  }

);

4]、为特定数据库创建管理员

您可以为特定数据库创建管理员用户。例如:

use testdatabase

db.createUser(

  {

    user: 'testadmin',

    pwd: 'TestPassW0rd',

    roles: [ { role: 'userAdmin', db: 'testdatabase' } ]

  }

);

5]、创建具有读写权限的用户

还可以创建对特定数据库具有读写权限的用户。例如:

use testdatabase

db.createUser(

   {

     user: 'testuser',

     pwd: 'TestPassW0rd',

     roles: [ { role: 'readWrite', db: 'testdatabase' } ]

   }

 );

6]、列出MongoDB上的用户

要列出可用用户,请查询system.users集合。

use admin

db.system.users.find()

样本输出:

\

使用以下命令退出shell:

> exit

5、在MongoDB中使用自定义数据路径

通常,MongoDB将其数据存储在/var/lib/mongodb中。然而,这可以更改为另一个优选的数据路径。为此,首先停止服务:

sudo systemctl stop mongod.service

使用正确的权限创建自定义数据路径:

sudo mkdir -p /data/mongo

sudo chown -R mongodb:mongodb /data/mongo

继续并将旧目录的内容复制到此新路径:

sudo cp -r /var/lib/mongodb/* /data/mongo

您可以将旧目录移动到备份文件:

sudo mv /var/lib/mongodb /var/lib/mongodb.bak

现在编辑配置文件以适应新路径:

sudo vim /etc/mongod.conf

进行以下更改:

# Where and how to store data.

storage:

  dbPath: /data/mongo

保存文件,重新加载守护程序并启动服务:

sudo systemctl daemon-reload

sudo systemctl start mongod

验证服务是否正在运行:

$ systemctl status mongod

会返回Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)的信息。

结论

在本文中,我们在Debian 11/Debian 10操作系统上安装了MongoDB 6。除此之外,我们还学习了如何配置MongoDB 6,以及如何创建用户、数据库和集合。