当前位置:  开发笔记 > 编程语言 > 正文

如何通过python中的unix socket连接到mongodb

如何解决《如何通过python中的unixsocket连接到mongodb》经验,为你挑选了2个好方法。

有没有办法通过python中的unix socket连接到mongodb,而官方的pymongo模块还不支持unix socket.

我喜欢任何第三方替代品或补丁,而我一直在搜索并找不到.

我不喜欢ORM风格的库,因为mongodb => python dicts是自然且易于使用的,所以我没有考虑像MongoEngine这样的东西.



1> Tyler Brock..:

默认情况下,MongoDB在/tmp/mongodb-27017.sock.创建一个unix套接字.从pymongo 2.4开始,您可以建立如下连接:

from pymongo import MongoClient
CONNECTION = MongoClient('/tmp/mongodb-27017.sock')

此外,您可以通过启动mongod --nounixsocket或使用指定备用位置来禁用此行为--unixSocketPrefix

MongoDB将始终在UNIX套接字上创建和侦听,除非--nounixsocket已设置,--bind_ip未设置或--bind_ip指定127.0.0.1.



2> Shane Davies..:

MongoDB v3.x的更新

如果您在Linux上升级到MongoDB 3.x,则已删除/tmp/mongodb-27017.sock上的组和其他权限.使用MongoClient连接时,您将收到权限被拒绝错误(host ='/ tmp/mongodb-27017.sock')

要解决此问题,请将MongoDB配置文件升级为YAML格式,其中包括filePermissions选项,以便您重新设置权限.

YAML格式的/etc/mongod.conf示例:

storage:
    dbPath: "/var/lib/mongodb"
systemLog:
    destination: file
    path: "/var/log/mongodb/mongod.log"
    logAppend: true
net:
    unixDomainSocket:
        filePermissions: 0777

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有