相关疑难解决方法(0)

为什么得到错误mongod死了,但是锁定并且Linux上的日志文件的可用空间不足?

我在Linux CentOS服务器上安装了mongo-10gen mongo-10gen- server.

我按照Link的步骤进行操作.

我已将/etc/mongod.conf配置为 -

logpath=/var/log/mongo/mongod.log
port=27017
dbpath=/var/lib/mongo
Run Code Online (Sandbox Code Playgroud)

我在iptables中为mongo设置了端口27017 .要启动mongo,我使用了命令 -

service mongod start and
mongo
Run Code Online (Sandbox Code Playgroud)

它开始很好,但几天后我得到错误 -

Tue Jan 29 08:41:54 [initandlisten] ERROR: Insufficient free space for journal files
Tue Jan 29 08:41:54 [initandlisten] Please make at least 3379MB available in /var/lib/mongo/journal or use --smallfiles
Tue Jan 29 08:41:54 [initandlisten]
Tue Jan 29 08:41:54 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Tue Jan 29 08:41:54 dbexit: …
Run Code Online (Sandbox Code Playgroud)

linux journal mongodb

67
推荐指数
3
解决办法
6万
查看次数

为什么PyMongo 3会给出ServerSelectionTimeoutError?

我正在使用:

  • Python 3.4.2
  • PyMongo 3.0.2
  • mongolab运行mongod 2.6.9
  • uWSGI 2.0.10
  • CherryPy 3.7.0
  • nginx 1.6.2

uWSGI启动参数:

--socket 127.0.0.1:8081 --daemonize --enable-threads --threads 2 --processes 2
Run Code Online (Sandbox Code Playgroud)

我设置我的MongoClient ONE时间:

self.mongo_client = MongoClient('mongodb://user:pw@host.mongolab.com:port/mydb')
self.db = self.mongo_client['mydb']
Run Code Online (Sandbox Code Playgroud)

我尝试将一个JSON字典保存到MongoDB:

result = self.db.jobs.insert_one(job_dict)
Run Code Online (Sandbox Code Playgroud)

它通过单元测试工作,该测试执行与mongodb相同的代码路径.但是当我使用HTTP POST通过CherryPy和uWSGI执行时,我得到了这个:

pymongo.errors.ServerSelectionTimeoutError: No servers found yet
Run Code Online (Sandbox Code Playgroud)

为什么我在通过CherryPy和uWSGI运行时会看到这种行为?这可能是PyMongo 3中的新线程模型吗?

更新:

如果我通过使用CherryPy内置服务器运行没有uWSGI和nginx,那么就insert_one()可以了.

更新1/25美国东部时间下午4:53:

在PyMongo中添加一些调试后,似乎topology._update_servers()知道服务器'myserver-a.mongolab.com'的server_type = 2.但是server_description.known_servers()服务器'myserver.mongolab.com'的server_type = 0

这导致以下堆栈跟踪:

result = self.db.jobs.insert_one(job_dict)
File "/usr/local/lib/python3.4/site-packages/pymongo/collection.py", line 466, in insert_one
with self._socket_for_writes() as sock_info:
File "/usr/local/lib/python3.4/contextlib.py", line 59, in __enter__
return next(self.gen)
File …
Run Code Online (Sandbox Code Playgroud)

python mongodb uwsgi mlab pymongo-3.x

34
推荐指数
6
解决办法
3万
查看次数

未捕获的异常'MongoConnectionException'

Fatal error: Uncaught exception 'MongoConnectionException' with message 
'Failed to connect to: localhost:27017: Permission denied' in 
/var/www/html/test.php:8 Stack trace: #0 /var/www/html/test.php(8): 
MongoClient->__construct() #1 {main} thrown in /var/www/html/test.php 
on line 8
Run Code Online (Sandbox Code Playgroud)

嗨Mongo专家......

我是一个想要试用MongoDB的开发人员.所以在一台测试机(Dell E520 Intel双核4GB Ram)中安装了centoOS 6.5 64bit,安装了PHP(Apache已经存在).

然后安装MongoDB(yum install mongo-10gen mongo-10gen-server),然后安装"pecl install mongo"(安装ok:channel://pecl.php.net/mongo-1.4.5),添加了extension = mongo.so到php.ini.

要安装pecl,我安装了一些其他东西,比如C++编译器和php-pear.php5-dev&php5-cli在yum中不可用所以安装了php-devel和php-cli(已安装的版本是php-devel-5.3.3-27.el6_5.x86_64&php-cli-5.3.3-27.el6_5 .x86_64

我关掉了iptables防火墙.Ran mongo --host localhost:27017来自shell并连接没有问题

[root@localhost ~]# mongo --host localhost:27017
MongoDB shell version: 2.4.8
connecting to: localhost:27017/test
> 
Run Code Online (Sandbox Code Playgroud)

这些是test.php的内容

<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

// connect
$m = new MongoClient();
//$m = new MongoClient("mongodb://localhost:27017");

// select …
Run Code Online (Sandbox Code Playgroud)

connection exception mongodb

2
推荐指数
1
解决办法
6583
查看次数

标签 统计

mongodb ×3

connection ×1

exception ×1

journal ×1

linux ×1

mlab ×1

pymongo-3.x ×1

python ×1

uwsgi ×1