自学内容网 自学内容网

mongo的使用

在 CentOS 7 中重新安装 MongoDB 的步骤如下。可以通过卸载现有的 MongoDB,然后重新安装最新版本来完成。以下是详细的操作步骤:

1. 卸载现有的 MongoDB

首先,停止 MongoDB 服务并卸载所有相关的包:

sudo systemctl stop mongod
sudo yum remove mongodb-org

清理数据和日志目录(注意:这会删除所有 MongoDB 数据,请确保先备份重要数据):

sudo rm -rf /var/log/mongodb
sudo rm -rf /var/lib/mongo

2. 配置 MongoDB YUM 源

创建 /etc/yum.repos.d/mongodb-org-6.0.repo 文件,并将以下内容写入其中:

sudo nano /etc/yum.repos.d/mongodb-org-6.0.repo

文件内容如下(6.0 是当前推荐的 MongoDB 版本,可以根据需要修改):

[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc

保存并退出。

3. 安装 MongoDB

使用 yum 安装 MongoDB:

sudo yum install -y mongodb-org

这将安装以下组件:

  • mongodb-org-server:MongoDB 服务。
  • mongodb-org-shell:MongoDB Shell 客户端。
  • mongodb-org-mongos:MongoDB 路由服务。
  • mongodb-org-tools:用于备份、恢复等操作的工具。

4. 启动和配置 MongoDB 服务

安装完成后,启动 MongoDB 服务并设置开机启动:

sudo systemctl start mongod
sudo systemctl enable mongod

5. 检查 MongoDB 状态

检查 MongoDB 服务是否正常运行:

sudo systemctl status mongod

如果状态显示为 active (running),则表示 MongoDB 安装和启动成功。

6. 配置防火墙(可选)

如果你需要远程连接 MongoDB,需要开放 27017 端口:

sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload

7. 验证安装

启动 MongoDB Shell,验证 MongoDB 是否能够正常工作:

mongo

进入 MongoDB Shell 后,可以输入以下命令查看数据库列表:

show dbs

8. 重新安装 MongoDB 数据库(如果需要)

如果你只是想清空 MongoDB 数据库而不需要卸载 MongoDB,可以使用以下方法来删除所有数据库:

mongo
use admin
db.shutdownServer()
sudo rm -rf /var/lib/mongo/*
sudo systemctl start mongod

这样,你的 MongoDB 数据库将被完全重置,并且所有数据都被清空。

9. 其他注意事项

  • 备份数据:在卸载之前,请务必备份重要的数据库数据,以防数据丢失。
  • 调整配置文件:安装完成后,MongoDB 配置文件位于 /etc/mongod.conf,可以根据需要调整监听地址、端口号等设置。

如果按照以上步骤操作,你应该能够顺利地在 CentOS 7 上重新安装 MongoDB。

在 MongoDB 中,为了安全性,推荐设置管理员账号密码并启用用户身份验证。以下是如何在 MongoDB 中创建初始管理员账户并进行登录的详细步骤:

1. 启动 MongoDB

首先,确保 MongoDB 服务正在运行:

sudo systemctl start mongod

检查服务状态:

sudo systemctl status mongod

2. 进入 MongoDB Shell

使用默认配置连接到 MongoDB Shell:

mongo

3. 切换到 admin 数据库

在 MongoDB Shell 中输入以下命令,切换到 admin 数据库:

use admin

4. 创建管理员账户

admin 数据库中创建管理员用户(将 <username> 替换为你的用户名,将 <password> 替换为你的密码):

db.createUser({
  user: "<username>",
  pwd: "<password>",
  roles: [ { role: "root", db: "admin" } ]
})

例如,如果要创建用户名为 admin,密码为 yourpassword 的用户,可以使用:

db.createUser({
  user: "admin",
  pwd: "yourpassword",
  roles: [ { role: "root", db: "admin" } ]
})

成功后,MongoDB 会返回以下提示信息,表示用户创建成功:

Successfully added user: { "user" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }

5. 启用 MongoDB 的身份验证

退出 MongoDB Shell:

exit

编辑 MongoDB 配置文件 /etc/mongod.conf

sudo nano /etc/mongod.conf

找到以下行,并取消注释(如果没有此行,则需要手动添加):

#security:
#  authorization: "enabled"

将其改为:

security:
  authorization: "enabled"

保存并退出编辑器。

6. 重启 MongoDB 服务

编辑配置文件后,重启 MongoDB 服务以启用身份验证:

sudo systemctl restart mongod

7. 使用管理员账户登录 MongoDB

MongoDB 启用身份验证后,你需要使用创建的管理员账户登录:

mongo -u "admin" -p "yourpassword" --authenticationDatabase "admin"

如果成功登录,你会看到 MongoDB Shell 的提示符:

MongoDB shell version v4.2.0
connecting to: mongodb://127.0.0.1:27017/?authSource=admin&gssapiServiceName=mongodb

现在,你已经成功使用管理员账户登录到 MongoDB。

8. 创建其他用户(可选)

作为管理员登录后,可以在其他数据库中创建不同的用户。例如,要在 testdb 数据库中创建一个只读用户,可以使用以下命令:

use testdb
db.createUser({
  user: "testUser",
  pwd: "testPass",
  roles: [ { role: "read", db: "testdb" } ]
})

这样,你就创建了一个只对 testdb 具有读权限的用户 testUser

9. 远程访问(可选)

如果你需要从远程服务器连接到 MongoDB,请确保 MongoDB 配置文件中允许所有 IP 连接。编辑 /etc/mongod.conf,找到 bindIp 行并修改为 0.0.0.0

net:
  bindIp: 0.0.0.0

然后重启 MongoDB:

sudo systemctl restart mongod

同时,为了安全性,可以考虑在防火墙中开放特定 IP 地址对 MongoDB 的访问权限。

10. 验证身份验证

你可以再次使用命令来验证用户身份登录:

mongo -u "<username>" -p "<password>" --authenticationDatabase "admin"

替换 <username><password> 为你创建的管理员用户名和密码。

11. 常见问题和注意事项

  1. 无法启动 MongoDB:如果配置文件语法不正确,可能会导致 MongoDB 服务无法启动。请检查 /etc/mongod.conf 是否符合 YAML 格式。
  2. 身份验证失败:确保你在 admin 数据库中创建了用户,并且登录时使用了正确的 --authenticationDatabase 选项。

这样,管理员账户创建和 MongoDB 安全配置就完成了。现在,你可以在需要的数据库中创建更多用户并配置不同的权限。


原文地址:https://blog.csdn.net/weixin_44137441/article/details/142849532

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!