标签: mlab

为什么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万
查看次数

无法连接到mongolab,获取MongoError:auth失败

我最近在mongoLab中创建了一个帐户.当我尝试使用以下语句连接到数据库时.

var mongoose = require('mongoose');
mongoose.connect('mongodb://mk:12345@ds047742.mongolab.com:47742/mkdb');
Run Code Online (Sandbox Code Playgroud)

我总是收到以下错误

MongoError: auth failed
at Function.MongoError.create (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)
at /Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:793:66
at Callbacks.emit (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:94:3)
at null.messageHandler (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:235:23)
at Socket.<anonymous> (/Users/a042292/Desktop/start/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:259:22)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at Socket.Readable.push (_stream_readable.js:126:10)
at TCP.onread (net.js:538:20)
Run Code Online (Sandbox Code Playgroud)

mongodb node.js mlab

27
推荐指数
5
解决办法
4万
查看次数

mongoDB是否重新连接问题或者我做错了吗?

我正在使用nodejs和mongoDB - 我遇到了一些连接问题.

好吧,实际上是"唤醒"问题!它连接得非常好 - 速度非常快,我对结果非常满意.

我的问题:如果我暂时不使用连接(我说同时,因为时间范围变化5分钟以上)似乎停滞不前.我没有解决断线事件 - 它只是挂起.

最终我收到像Error这样的回复:无法连接到[*.mongolab.com:*] - (*=屏蔽值)

快速重启应用程序,连接再次很棒.有时,如果我不重新启动应用程序,我可以刷新并重新连接愉快.

这就是我认为这是"唤醒"问题的原因.

粗略的代码轮廓:

我没有包含代码 - 我认为不需要.它的工作原理(除了连接丢失)

注意事项:只有一个"连接" - 我永远不会关闭它.我从未重开过.

我正在使用猫鼬,袜子.

/* constants */

var mongoConnect = 'myworkingconnectionstring-includingDBname';


/* includes */

/* settings */

/* Schema */

var db = mongoose.connect(mongoConnect);

    /* Socketio */

io.configure(function (){
    io.set('authorization', function (handshakeData, callback) {

    });
});

io.sockets.on('connection', function (socket) {

});//sockets

io.sockets.on('disconnect', function(socket) {
    console.log('socket disconnection')
});

/* The Routing */

app.post('/login', function(req, res){  

});

app.get('/invited', function(req, res){

});

app.get('/', …
Run Code Online (Sandbox Code Playgroud)

azure mongoose mongodb node.js mlab

26
推荐指数
3
解决办法
2万
查看次数

无法连接到MongoLab"auth failed"错误

我是mongo的新手.最近在mongoLab中创建了一个帐户.

我正在尝试使用以下语句连接到数据库.

mongo ds039487.mongolab.com:39487/webbies -u <dbuser> -p <dbpassword>
Run Code Online (Sandbox Code Playgroud)

得到以下错误

MongoDB shell version: 2.4.8
connecting to: ds039487.mongolab.com:39487/webbies
Wed Dec 11 22:30:16.686 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228
exception: login failed
Run Code Online (Sandbox Code Playgroud)

注意:dbuser - 是在mongoLab中创建的用户

这有什么缺失?好心劝告.

mongodb mlab

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

在mLab上连接到MongoDB数据库失败了身份验证

我有一个Parse应用程序,我正在尝试将我的应用程序的数据库迁移到mLab上的MongoDB实例.

我已经在Heroku上设置了一个Parse Server分支,我正在使用Heroku的mLab MongoDB附加组件.

我有一个名为mLab的数据库heroku_1ksph3jj,我应该可以使用以下模板连接到它:

mongodb://<dbuser>:<dbpassword>@ds047124.mlab.com:47124/heroku_1ksph3jj

但是,每次尝试都会返回:

Server returned error on SASL authentication step: Authentication failed.

我不确定要替换什么<dbuser><dbpassword>用什么.我有一个与我的数据库名称相同的数据库用户:heroku_1ksph3jjz所以我使用了它.我使用该用户的密码代替<dbpassword>.我应该在这里使用其他东西吗?

heroku database-migration mongodb mlab parse-platform

22
推荐指数
3
解决办法
2万
查看次数

使用CompositeServerSelector选择服务器30000ms后发生超时

我尝试在Mongolabs中部署我的Mongo数据库,一切正常,我创建了一个新的数据库.请看我的连接字符串.

    public DbHelper()
    {

        MongoClientSettings settings = new MongoClientSettings()
        {
            Credentials = new MongoCredential[] { MongoCredential.CreateCredential("dbname", "username", "password") },
            Server = new MongoServerAddress("ds011111.mongolab.com", 11111),
            //ConnectTimeout = new TimeSpan(30000)
        };

        Server = new MongoClient(settings).GetServer();

        DataBase = Server.GetDatabase(DatabaseName);

    }
Run Code Online (Sandbox Code Playgroud)

但是当我尝试连接数据库时,它显示的错误如下:

在此输入图像描述

c# replication mongodb nosql mlab

19
推荐指数
5
解决办法
2万
查看次数

无法连接到mongolab主机

我试图通过下面的命令从终端连接到mongolab

 mongo ds061158.mongolab.com:61158/order_it -u <dbuser> -p <dbpassword>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

MongoDB shell version: 2.6.3
connecting to: ds061158.mongolab.com:61158/order_it
2014-07-09T13:52:44.890+0530 Error: couldn't connect to server ds061158.mongolab.com:61158 (23.22.170.205), connection attempt failed at src/mongo/shell/mongo.js:148
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

在这种情况下需要做些什么?

提前致谢.

mongodb mlab

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

连接到远程mongo服务器导致异常连接失败

在mongodb.org的mo​​ngodb安装文件中运行此命令

./mongo ds045907.mongolab.com:45907/database -u user -p password
Run Code Online (Sandbox Code Playgroud)

我更改了数据库,用户和密码以匿名.

结果如此

Error: couldn't connect to server ds045907.mongolab.com:45907 src/mongo/shell/mongo.js:93
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

也许我被服务器防火墙阻止了?我使用git或brew或pip没问题...

mongodb mlab

16
推荐指数
2
解决办法
5万
查看次数

Mongolab nodejs拓扑被破坏

我一直使用nodejs与twitter连接.我正在尝试在mongolab mongodb数据库中记录一些重要的公共用户数据.出于某种原因,我不断得到"拓扑破坏错误",我不太清楚为什么会这样.

var Twitter = require('twitter');
var mongodb = require('mongodb');

var accounts = ['@zaynmalik',
'@ZooeyDeschanel'];

var client = new Twitter({
  consumer_key: 'key',
  consumer_secret: 'secret',
  access_token_key: 'key',
  access_token_secret: 'secret'
});

var MongoClient = mongodb.MongoClient;
var url = "mongodb://user:pass@mongolab.com:numbers/db";

MongoClient.connect(url, function (err, db) {
  if (err) {
    console.log('Unable to connect to the mongoDB server. Error:', err);
  } else {
    //HURRAY!! We are connected. :)
    console.log('Connection established to database');

    var collection = db.collection('accounts');

    for(var i = 0; i < accounts.length; i++){
        client.get('users/show', {screen_name: …
Run Code Online (Sandbox Code Playgroud)

javascript twitter mongodb node.js mlab

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

如何使用MLab连接sting连接MongoDB Compass,

我在MLab上托管数据库,我正在尝试将其与Compass连接.我使用连接字符串中给出的主机和端口,但它显示错误,这是我的截图:

罗盘

请让我知道我做错了什么.

谢谢

mongodb mlab

16
推荐指数
3
解决办法
4938
查看次数