如何在Arch Linux上安装MongoDB 4.0

先决条件

  • 运行最新Arch Linux的Vultr服务器(请参阅本文
  • 须藤访问:
    • 要求以root身份运行的命令以前缀#,而可以以普通用户身份运行的命令以前缀$。建议以root用户身份运行命令的方式是,以普通用户的身份为每个命令添加前缀sudo

安装MongoDB 4.0数据库

MongoDB位于AUR(Arch用户存储库)中。您可以使用2套软件包。请参阅在Arch Linux(包括AUR)上构建软件包以编译和安装这两组软件包:

  1. 从源编译。使用AUR软件包mongodb,也可以使用mongodb-tools'。请注意,这大约需要180GB,这是一个很长的编译过程。使用4核,大约需要7个小时。这是推荐的方法,因为它使用Arch的编译标志。
  2. 使用MongoDB的预构建二进制文件。使用AUR软件包mongodb-bin并可能使用mongodb-tools-bin。这将跳过整个编译阶段,从mongodb.org下载预构建的二进制文件,并将其与必要的配置文件打包在一起。

安装软件包后,启动MongoDB,并使其在每次启动后启动。在第一次启动期间,它将为日志和其他数据预分配文件,这可能需要一段时间才能完成数据库的建立:

# systemctl enable --now mongodb

测试连接

连接到MongoDB:

$ mongo

退出:

> exit

防火墙注意事项

尽管配置防火墙始终是一个好主意,但是默认情况下,MongoDB默认仅侦听27017localhost 上的端口,因此它不会接收任何外部流量。

需要认证

默认情况下,MongoDB允许任何人无需任何身份验证即可连接到它,这显然存在安全风险。

创建一个根数据库用户:

$ mongo
> use admin
> db.createUser(
... {
... user: "root",
... pwd: "YOUR-NEW-PASSWORD",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... }
... )
> exit

编辑/etc/mongodb.conf,如果使用包mongodb添加:

security:
  authorization: "enabled"

如果使用软件包mongodb-bin添加:

auth = true

重新启动MongoDB:

# systemctl restart mongodb

现在,尽管您仍然可以在不进行身份验证的情况下连接到MongoDB,但没有它,它将无法执行任何操作:

$ mongodb
> db.getUsers()
... Error: command usersInfo requires authentication :

以root身份连接到MongoDB:

$ mongodb -u root

或者,连接到MongoDB,然后在其中进行身份验证:

$ mongodb
> use admin
> db.auth("root", "<YOUR-DATABASE-ROOT-PASSWORD>")

重要提示:升级

由于MongoDB现在是AUR的一部分,因此pacman在升级整个Arch系统时,不会自动编译并将其升级到新版本。您将需要手动重新编译新版本并安装新软件包。在这样做之前,请务必先查看MongoDB的发行说明,以了解是否需要采取任何其他步骤。同样,在升级之前备份数据库也是个好主意。

不干净的关机

如果MongoDB没有彻底关闭,并且在下次启动时没有使用其日志自动恢复,则可能需要运行以下命令:

sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/

根据数据库的大小和所使用的索引,此过程的范围可能从数秒到数小时不等。

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息