在 CentOS 上安装 MongoDB,你可以按照以下步骤进行:
导入 MongoDB 的 GPG 密钥:
sudo rpm --import https://www.mongodb.org/static/pgp/server-5.0.asc
创建 MongoDB 的 YUM 存储库文件 /etc/yum.repos.d/mongodb-org-5.0.repo
,并使用文本编辑器打开它:
sudo vi /etc/yum.repos.d/mongodb-org-5.0.repo
在文件中添加以下内容:
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
保存并关闭文件。
安装 MongoDB:
sudo yum install -y mongodb-org
启动 MongoDB 服务:
sudo systemctl start mongod
设置 MongoDB 开机自启动:
sudo systemctl enable mongod
检查 MongoDB 服务状态:
sudo systemctl status mongod
如果一切正常,你应该会看到 MongoDB 服务已经运行。
默认情况下,MongoDB 监听在 127.0.0.1 的本地接口上。如果你需要允许远程访问,你需要编辑 MongoDB 配置文件 /etc/mongod.conf
并更改 bindIp
部分以允许所需的 IP 地址。保存更改并重新启动 MongoDB 服务。
确保防火墙允许 MongoDB 的访问。如果使用默认的 MongoDB 端口 27017,请确保你的防火墙规则允许流量通过该端口。
现在,MongoDB 应该已经安装并在 CentOS 上运行。你可以使用 mongo
命令行客户端或其他 MongoDB 客户端工具连接到数据库。
在默认配置下,MongoDB 安装后没有设置密码,因此可以直接通过没有身份验证的方式访问 MongoDB 数据库。这在生产环境中是不安全的,因此建议你设置 MongoDB 的身份验证密码以增强安全性。
以下是在 MongoDB 上设置密码的一般步骤:
启动 MongoDB 并连接到数据库服务器。
mongo
切换到 admin
数据库。你将在 admin
数据库中创建用户。
use admin
创建一个管理员用户,并为其分配密码。在这个例子中,我们创建一个用户名为 adminUser
的管理员用户,你可以替换为你想要的用户名和密码。
db.createUser({ user: "adminUser", pwd: "yourPassword", roles: ["root"] })
请确保将 yourPassword
替换为你选择的实际密码。
退出 MongoDB。
quit()
编辑 MongoDB 配置文件 /etc/mongod.conf
。
sudo vi /etc/mongod.conf
添加以下行以启用身份验证:
security:
authorization: enabled
保存并关闭文件。
重新启动 MongoDB 服务。
sudo systemctl restart mongod
现在,MongoDB 已经配置了身份验证,你需要提供用户名和密码才能访问数据库。在命令行上连接到 MongoDB 时,你可以使用 -u
和 -p
选项提供用户名和密码:
mongo -u adminUser -p yourPassword --authenticationDatabase admin
请确保将 adminUser
和 yourPassword
替换为你实际设置的用户名和密码。
要测试 MongoDB 数据库中的查询语句或执行其他操作,你可以使用 MongoDB 的命令行客户端 mongo
。以下是一些示例查询语句和其他操作:
连接到 MongoDB 数据库:
mongo -u adminUser -p yourPassword --authenticationDatabase admin
请将 adminUser
和 yourPassword
替换为你的用户名和密码。
列出所有数据库:
show dbs
切换到一个数据库:
use yourDatabase
将 yourDatabase
替换为你要使用的实际数据库。
插入文档到集合:
db.yourCollection.insert({ key: "value" })
将 yourCollection
替换为你要插入文档的集合名称,key
和 value
替换为你要插入的字段和值。
查询集合中的文档:
db.yourCollection.find()
这将返回集合中的所有文档。
更新文档:
db.yourCollection.update({ key: "value" }, { $set: { keyToUpdate: "newValue" } })
这将更新匹配条件的文档中的字段值。
删除文档:
db.yourCollection.remove({ key: "value" })
这将删除匹配条件的文档。
显示集合中的文档数:
db.yourCollection.count()
这将返回集合中的文档数量。
要允许外网访问 MongoDB,你需要在 MongoDB 的配置文件中做一些更改,以及根据你的环境设置防火墙规则。以下是一般步骤:
编辑 MongoDB 配置文件:
打开 MongoDB 的配置文件,通常位于 /etc/mongod.conf
。你可以使用文本编辑器打开它,例如:
sudo vi /etc/mongod.conf
在配置文件中找到 bindIp
配置项。默认情况下,它可能设置为 127.0.0.1
,这只允许本地访问。你需要更改它以允许外网访问。
bindIp: 0.0.0.0
这将允许 MongoDB 侦听所有网络接口上的连接。
请注意,将 bindIp
设置为 0.0.0.0
可能会带来一定的安全风险,因为它会使 MongoDB 开放给所有的IP地址。因此,你应该采取其他措施来限制对 MongoDB 的访问,如设置身份验证和访问控制列表(ACL)。
保存并关闭配置文件。
重新启动 MongoDB 服务:
sudo systemctl restart mongod
设置防火墙规则:
如果你的服务器上启用了防火墙(如Firewalld),你需要确保打开 MongoDB 的监听端口(默认是27017)以允许外部访问。你可以运行以下命令:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
这将添加一个永久的规则,允许外部连接到 MongoDB 的端口。
现在,你的 MongoDB 服务器应该已经允许外部访问。但请注意,在将 MongoDB 公开到外部网络时,务必采取额外的安全措施,如配置身份验证、设置访问控制列表、定期备份数据以及监控数据库活动,以确保安全性和数据保护。