我正在使用:
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) 我最近在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) 我正在使用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) 我是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中创建的用户
这有什么缺失?好心劝告.
我有一个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>
.我应该在这里使用其他东西吗?
我尝试在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)
但是当我尝试连接数据库时,它显示的错误如下:
我试图通过下面的命令从终端连接到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.org的mongodb安装文件中运行此命令
./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没问题...
我一直使用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) mlab ×10
mongodb ×10
node.js ×3
azure ×1
c# ×1
heroku ×1
javascript ×1
mongoose ×1
nosql ×1
pymongo-3.x ×1
python ×1
replication ×1
twitter ×1
uwsgi ×1