1.添加MongoDB的YUM仓库:
打开终端,执行以下命令来添加MongoDB的YUM仓库:
sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo
在打开的文件中,输入以下内容:
[mongodb-org-4.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
保存并退出文件。
2.安装MongoDB
在添加了MongoDB的YUM仓库后,你可以使用yum
命令来安装MongoDB:
sudo yum install -y mongodb-org
这将安装MongoDB及其相关的工具和依赖项。
3.启动MongoDB服务
安装完成后,你需要启动MongoDB服务:
sudo systemctl start mongod
你还可以设置MongoDB在系统启动时自动启动:
sudo systemctl enable mongod
4.验证安装
你可以通过检查MongoDB服务的状态来验证安装是否成功:
sudo systemctl status mongod
如果服务正在运行,那么你应该能看到“active (running)”的状态信息。
5.连接到MongoDB
要连接到MongoDB服务器,你可以使用mongo
shell:
mongo
这将在你的终端中启动MongoDB shell,并连接到本地的MongoDB实例。
6.配置MongoDB以允许远程连接
默认情况下,MongoDB只监听本地连接。要允许远程连接,你需要编辑MongoDB的配置文件。
找到MongoDB的配置文件,通常位于/etc/mongod.conf
。使用你喜欢的文本编辑器打开它,例如vi
。
vi /etc/mongod.conf
找到bindIp
配置项,并将其设置为0.0.0.0
,以允许来自任何IP地址的连接。如果找不到该配置项,可以在文件的适当位置添加它。
bindIp = 0.0.0.0
注意:允许远程连接会增加安全风险。确保你的MongoDB实例受到适当的防火墙保护,并且只允许可信的IP地址进行连接。
保存并关闭配置文件。
7.重启MongoDB服务以及配置防火墙以允许MongoDB端口
为了使配置更改生效,你需要重启MongoDB服务:
systemctl restart mongod
默认情况下,CentOS 7使用firewalld
作为防火墙管理工具。你需要配置防火墙以允许MongoDB使用的端口(默认为27017)通过。
打开防火墙并添加规则以允许MongoDB端口:
firewall-cmd --permanent --add-port=27017/tcp firewall-cmd --reload
8. 测试远程连接
python代码链接mongodb
#!/usr/bin/env python from http import client from pymongo import MongoClient client = MongoClient("mongodb://192.168.1.63:27017") db = client.mashibing #增 # user1 = { # "name":"Nical", # "age":18, # "email":"4@4.com", # "addr":["TW","HZ","GZ"] # } # db["user"].insert_one(user1) # user_list = [ # { # "name":"89", # "age":25, # "email":"5@5.com", # "addr":["DYD","SZ","DG"]}, # { # "name":"CC", # "age":24, # "email":"6@6.com", # "addr":["NX","CD","SH"]}, # { # "name":"APT27", # "age":80, # "email":"7@7.com", # "addr":["MD","MB","YD"]}, # ] # db["user"].insert_many(user_list) #查 users = db["user"].find() for u in users:print(u) #改 # db["user"].update_one({"name":"APT27"},{"$set":{"age":16}}) #删 # db["user"].delete_one({"name":"APT27"})
效果