更新时间: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,以及如何创建用户、数据库和集合。
相关资讯