mongoDB linux安装与远程访问。

CentOS7安装MongoDB并启用远程访问
本文档详细介绍了如何在CentOS7上安装MongoDB,并通过配置bind_ip和关闭防火墙的方式实现远程访问。同时,针对启动过程中遇到的mongod.lock问题提供了解决方案。

背景介绍:小的在工作中需要用mongo,就琢磨在虚拟机centos7上安装一个mongo玩玩。安装完之后,发现远程连接不上。

那么小的就从安装开始给各位看客老爷们道来。

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz    # 下载
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz                                   # 解压

mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb                         # 将解压包拷贝到指定目录
MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:

export PATH=<mongodb-install-directory>/bin:$PATH   #  类似于配置jdk的classPath  export为导出环境变量  可以用echo $PATH 查看。
<mongodb-install-directory> 为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb 

创建数据库目录

MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。

以下实例中我们将data目录创建于根目录下(/)。

注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。

mkdir -p /data/db

命令行中运行 MongoDB 服务

你可以再命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。

注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。

$ ./mongod

以上部分都是小的从http://www.runoob.com/mongodb/mongodb-linux-install.html 网站上copy的。。当然这也是最简单的启动方式,安这方式启动
只能localhost 也就是本地连接,那么远程连接的关键是什么?  有二
一: bind_ip  默认启动绑定的bind_ip=127.0.0.1 只允许本地连接访问,我们要在启动的时候修改bind_ip=0.0.0.0,表示所有网段都可以连接
,命令如下 
# cd /usr/local/mongodb/bin

# ./mongod --dbpath=/usr/local/mongodb/data --bind_ip=0.0.0.0 --port=27017 --fork

这时候修改完还不能连接 ,因为还需要关闭防火墙,centos7关闭防火墙命令和centos6是不同的,centos7之外的系统自己去找命令吧,思路都是一样的
二:关闭防火墙
systemctl stop firewalld
之后就可以重启mongoDB了。

测试连接,我的是window7远程连接,先测试ip和端口是否可用, telnet  ip  port   例如:
telnet 172.21.123.110 27017
到此本应该结束的,但是我关闭mongo重启的过程中遇到了问题。mongod.lock,无法启动,当然,我承认我是ctrl+

在mongodb的启动时,在数据目录下(我的是/data/db/),会生成一个mongod.lock文件。如果在正常退出时,会清除这个mongod.lock文件,若要是异常退出,在下次启动的时候,会禁止启动,从而保留一份干净的一份副本数据。有人可能会想到删除这个文件,我就是直接删除了,因为我的库自己建这玩的。。但是正式工作环境建议不要这么做。如果这么做,我们也不知道数据文件是否会损坏,如果mongod.lock文件阻止mongod的启动,请对数据文件进行修复,而不是简单的删除该文件。而这里的mongod.lock文件存放的是:启动mongod的进程号.



到此结束。小的初学mongo,希望与各位看客老爷共同切磋,进步,如果我的文章对你有用,请帮忙点个赞。如果没用,那。。我也不会道歉的。拜拜














<think>好的,我现在需要帮助用户在Linux环境下安装和配置MongoDB,并使用Python进行交互。用户的问题涉及到几个步骤,我得先理清流程,确保每个步骤都正确无误。 首先,安装MongoDB。用户提到的是Linux环境,所以我要考虑同的发行版,比如Ubuntu和CentOS。记得MongoDB官方提供了社区版,可以通过添加仓库源来安装。对于Ubuntu,可能需要用apt,而CentOS则用yum或者dnf。需要指导用户添加GPG密钥和仓库地址,然后安装mongodb-org包。这部分需要注意版本兼容性,但通常官方仓库会提供最新的稳定版。 接下来是配置和启动服务。安装完成后,需要启动mongod服务,并设置开机自启。这里可能会有权限问题,需要用户使用sudo或者以root权限执行命令。还要提到数据目录和日志路径的默认位置,方便用户了解存储结构。 然后是Python交互部分。用户需要安装pymongo库,这里用pip安装即可。可能需要检查Python版本是否兼容,过pymongo通常支持较新的Python版本。安装完成后,示例代码如何连接数据库、插入数据、查询等基本操作。这部分需要确保代码正确,比如正确使用MongoClient,处理集合和文档的操作。 另外,用户可能对认证有需求,所以需要补充如何启用MongoDB的身份验证,并在Python连接时添加用户名和密码。这里要提醒用户修改默认的admin数据库和创建用户权限,避免安全风险。 安全配置方面,防火墙设置也很重要,特别是如果MongoDB需要远程访问的话。需要指导用户开放27017端口,并配置绑定IP,但也要提醒要暴露在公网上,以免被攻击。 生成相关问题的时候,要考虑用户可能的后续问题,比如性能优化、数据备份、集群搭建等。这些扩展问题能帮助用户更深入使用MongoDB和Python。 最后检查引用部分,用户提供的引用中有提到pymongo和mongoengine的安装,虽然主要问题在Linux环境,但可能需要提到mongoengine作为ORM的选择,过用户的问题没有明确提到,所以可能放在相关问题的部分。 总结步骤:安装MongoDB -> 启动服务 -> Python库安装 -> 连接示例 -> 安全配置 -> 相关问题。需要确保每个步骤的命令准确,特别是针对Linux发行版的差异。同时,注意用户可能的权限问题和路径问题,给出通用解决方案。</think>### 在Linux安装和配置MongoDB并使用Python交互 #### 1. **安装MongoDB** **步骤说明**: - **Ubuntu/Debian系统**: ```bash # 导入MongoDB GPG密钥 wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add - # 添加MongoDB仓库源 echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list # 更新仓库并安装 sudo apt update sudo apt install mongodb-org ``` - **CentOS/RHEL系统**: ```bash # 创建仓库文件 sudo vi /etc/yum.repos.d/mongodb-org-7.0.repo ``` 输入以下内容: ```ini [mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc ``` 安装命令: ```bash sudo yum install mongodb-org ``` **验证安装**: ```bash mongod --version ``` --- #### 2. **启动MongoDB服务** ```bash # 启动服务 sudo systemctl start mongod # 设置开机自启 sudo systemctl enable mongod # 检查服务状态 sudo systemctl status mongod ``` --- #### 3. **配置MongoDB(可选)** - **数据目录日志路径**:默认数据存储在`/var/lib/mongodb`,日志在`/var/log/mongodb`。 - **启用身份验证**(建议生产环境使用): 1. 修改配置文件`/etc/mongod.conf`: ```yaml security: authorization: enabled ``` 2. 重启服务: ```bash sudo systemctl restart mongod ``` 3. 创建管理员用户: ```bash mongo admin > db.createUser({user: "admin", pwd: "password", roles: ["root"]}) ``` --- #### 4. **安装Python的pymongo驱动** ```bash pip install pymongo ``` 若需使用ORM工具,可额外安装`mongoengine`: ```bash pip install mongoengine ``` --- #### 5. **PythonMongoDB交互示例** ```python from pymongo import MongoClient # 连接MongoDB(无认证) client = MongoClient('mongodb://localhost:27017/') # 连接有认证的MongoDB # client = MongoClient('mongodb://admin:password@localhost:27017/') # 选择数据库和集合 db = client['test_db'] collection = db['test_collection'] # 插入文档 data = {"name": "Alice", "age": 30} insert_result = collection.insert_one(data) print(f"插入ID: {insert_result.inserted_id}") # 查询文档 query_result = collection.find_one({"name": "Alice"}) print(f"查询结果: {query_result}") # 关闭连接 client.close() ``` --- #### 6. **安全配置(防火墙)** 若需远程访问推荐暴露公网): ```bash sudo ufw allow 27017/tcp ``` 在配置文件`/etc/mongod.conf`中修改绑定IP: ```yaml net: bindIp: 0.0.0.0 # 允许所有IP访问(生产环境应限制为内网IP) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值