CentOS安装MongoDB
文章目录
- CentOS安装MongoDB
- 1. 安装并运行
- 2. 创建用户/密码
- 3. 测试语句
- 4. 允许外网访问
1. 安装并运行
在 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 客户端工具连接到数据库。
2. 创建用户/密码
在默认配置下,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
替换为你实际设置的用户名和密码。
3. 测试语句
要测试 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()
这将返回集合中的文档数量。
4. 允许外网访问
要允许外网访问 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 公开到外部网络时,务必采取额外的安全措施,如配置身份验证、设置访问控制列表、定期备份数据以及监控数据库活动,以确保安全性和数据保护。