在 OpenCloudOS Server 9 上安装 MongoDB 可能会遇到一些包管理上的问题。MongoDB 官方并未为所有 Linux 发行版提供预编译的 RPM 包,尤其是像 OpenCloudOS 这样的较小或特定发行版。
. 使用 Docker 安装 MongoDB
如果您不想或不能在 OpenCloudOS 上直接安装 MongoDB,使用 Docker 是一个很好的选择。
1 安装 Docker
如果尚未安装 Docker,可以通过以下命令安装 Docker:
sudo yum install -y dnf
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --set-enabled extras
sudo dnf install -y docker
sudo systemctl start docker
sudo systemctl enable docker
2 拉取 MongoDB 镜像
使用 Docker 拉取 MongoDB 镜像:
sudo docker pull mongo
3 运行 MongoDB 容器
运行 MongoDB 实例:
sudo docker run --name mongodb -d -p 27017:27017 mongo
#auth启动权限验证
#-v配置数据库路径
sudo docker run -d \
--name mongodb \
-p 27017:27017 \
-v /path/to/your/data:/data/db \
mongo --auth
#检查 MongoDB 容器是否正在运行
sudo docker ps
#CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#ae5c53d6c1d6 mongo "docker-entrypoint.s…" 19 hours ago Up 19 hours 0.0.0.0:27017->27017/tcp, :::27017->27017/tcp mongodb
3.4 访问 MongoDB
现在,您可以通过 MongoDB Shell 访问 MongoDB,使用以下命令:
进入容器的目的
使用 sudo docker exec -it mongodb /bin/bash 进入容器可以让你:
- 在容器内部执行命令(例如,查看文件,运行程序等)。
- 进行故障排除,检查日志,或修改容器中的配置。
- 直接与容器的操作系统环境进行互动。
sudo docker exec -it mongodb mongosh
#或者下方命令
# /bin/bash 是 Bash Shell 的路径,这意味着你将获得一个交互式的 Shell 会话,可以在其中执行命令。
sudo docker exec -it mongodb /bin/bash
在 sudo docker exec -it mongodb /bin/bash 命令中,/bin/bash 的含义是你希望在名为 mongodb 的 Docker 容器中启动一个 Bash Shell 环境。下面是这个命令中各部分的详细解释:
命令分解
sudo:以超级用户权限运行命令,这对某些 Docker 操作是必须的,特别是在没有将当前用户添加到 Docker 用户组的情况下。
docker exec:这个命令用于在运行中的容器内部执行命令。与
docker run不同,docker exec是在一个已经存在并正在运行的容器中执行命令。-
-it:
- -i:表示以交互模式运行。即使没有连接到终端,容器也会保持标准输入处于开放状态。
- -t:表示分配一个伪终端(pseudo-TTY)。这使得你能通过命令行与容器进行交互。
mongodb:这是你要进入的 Docker 容器的名称或 ID。在这个例子中,假设你有一个名为
mongodb的容器正在运行。/bin/bash:这部分指定你希望在容器中执行的命令。
/bin/bash是 Bash Shell 的路径,这意味着你将获得一个交互式的 Shell 会话,可以在其中执行命令。
在 MongoDB 容器内与 MongoDB 相关的可执行文件,包括:
-
mongod:MongoDB 的主进程。 -
mongodump:用于备份 MongoDB 数据的工具。 -
mongoexport:用于导出 MongoDB 数据的工具。 -
mongoimport:用于导入数据到 MongoDB 的工具。 -
mongosh:MongoDB Shell 的最新版本(推荐使用)。
然而,您没有找到名为 mongo 的命令。请注意,mongosh 是 MongoDB 的新 Shell,取代了以前的 mongo 命令,您可以使用它来连接和操作 MongoDB 数据库。
使用 mongosh 连接 MongoDB
您可以尝试使用 mongosh 连接到 MongoDB 实例。请在容器内输入以下命令:
mongosh
如果连接成功,您将看到 MongoDB 提示符,您可以开始执行数据库命令。
检查 MongoDB 状态
在 mongosh 中,您可以运行以下命令来检查 MongoDB 的状态:
db.runCommand({ ping: 1 })
如果返回结果为 { "ok": 1 },则表示 MongoDB 正常运行。
如果您需要使用旧版的 mongo Shell
若您需要使用旧版的 mongo Shell(而不是 mongosh),您可能需要从官方 MongoDB 厂商的镜像中获取。如果您希望使用旧版本的 mongo,可以考虑以下方法:
-
拉取旧版的 MongoDB 镜像:您可以选择特定版本的 MongoDB 镜像,例如:
sudo docker pull mongo:4.4这个版本通常会包含旧版的
mongoShell。 进入容器并查看可用的命令:在拉取并创建新容器后,您可以重复之前的步骤,检查
/usr/bin中是否存在mongo。
退出容器
完成操作后,您可以通过输入 exit 来退出容器的终端。