Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 与数据库建立连接时出现的问题_Python_Linux_Mongodb_Pymongo - Fatal编程技术网

Python 与数据库建立连接时出现的问题

Python 与数据库建立连接时出现的问题,python,linux,mongodb,pymongo,Python,Linux,Mongodb,Pymongo,平台:LINUX 我是MongoDB和pymongo的初学者。安装pymongo后,我在ipython上做了一个简单的测试: import pymongo client = pymongo.MongoClient(); # Also tried to specify the local host and port number db = client['myDB'] collections = db['temptables'] collections.insert({'a':'1'}) 在这一

平台:LINUX

我是MongoDB和pymongo的初学者。安装pymongo后,我在ipython上做了一个简单的测试:

import pymongo
client = pymongo.MongoClient();
# Also tried to specify the local host and port number
db = client['myDB']
collections = db['temptables']
collections.insert({'a':'1'})
在这一点上,它窒息了。最后,抛出一个“错误111:连接被拒绝”错误。因此,我尝试直接从终端调用MongoDB,但仍然出现下面的错误[看看远端]。因此,我搜索了一下并尝试:

  • 移除锁(sudorm/var/lib/mongodb/mongod.lock)。原来一开始没有锁

  • sudo mongod——修理

  • 我甚至看到有人建议从配置文件中注释掉主机和端口号。也试过了,没用

  • 上述措施都不起作用

    这就是我在尝试从命令行调用mongodb时看到的错误


    017-08-17T15:25:30.265-0700 W网络[thread1]无法连接到127.0.0.1:27017,in(轮询后检查套接字是否出错),原因:连接被拒绝 2017-08-17T15:25:30.265-0700 E查询[thread1]错误:无法连接到服务器127.0.0.1:27017,连接尝试失败: connect@src/mongo/shell/mongo.js:237:13 @(连接):1:6

    异常:连接失败
    请提供帮助。

    您的mongo服务器未运行

    您可以通过执行
    sudo ps-ef | grep mongod

    如果您已安装mongo并在路径中,则可以执行:

    cd && mkdir -p ~/temp_mongo_db && mongod --dbpath=./temp_mongo_db
    
    这将启动mongo并将所有数据库文件放在主目录中的“temp_mongo_db”下

    最后,在新的终端窗口中,再次执行
    sudo ps-ef | grep mongod
    。现在您将看到mongod正在跑步


    如果要在生产环境中运行mongo,应该将其配置为由或其他某个init系统管理

    听起来mongo没有跑。执行
    sudo ps-ef | grep mongo
    会得到什么?可能更重要的是,您从未真正安装过MongoDB数据库。这是一个很常见的误解,很可能是真的。PyMongo就是我们所说的“数据库驱动程序”或与数据库服务通信的软件。因此,要使用MongoDB,您实际上需要的是服务,而不仅仅是“驱动程序”。请参阅手册中有关您特定平台的说明。谢谢,我已经安装了mongodb;通过运行
    mongod--version
    确认。是的,这确实让mongo服务器运行!我可以和服务器通信了,谢谢。但是,看起来我总是必须在一个终端中执行:
    cd&&mkdir-p~/temp\u mongo\u db&&mongod--dbpath=/temp\u mongo\u db
    ,并在另一个终端中与服务器通信?我是否可以创建一个数据库文件,然后开始创建表并填充它们,就像我们对sqlite3所做的那样?@jsk Mongo是一个服务器,因此与sqlite的工作方式不同。你在使用什么linux操作系统?有一种方法可以将它设置为在后台运行并在启动时启动。我在Ubuntu上。@jsk checkout