2016-06-09 2 views
0

У меня есть удаленный сервер на CentOS через SSH и у меня есть одна базы данных test Монго на порт 27017.Как запустить несколько баз данных MongoDB на удаленном сервере

Я хотел бы запустить другую базу данных на тот же порт, или, возможно, на другом порт для одновременного использования двух баз данных в моем приложении.

ответ

1

Вы можете запускать несколько баз данных на одном экземпляре mongod, нет необходимости запускать более одного экземпляра, если вам нужна еще одна база данных.

Вы не можете запускать несколько процессов на одном и том же порту, поэтому вы не можете запустить другой mongod на 27017. Однако вы можете запустить другой экземпляр на другом порту, но я не уверен, почему вы захотите, если не будете пытаюсь создать репликас.

+0

согласен с robjwilkins. Все, что вам нужно сделать, это получить соединение с db, использовать отдельные имена баз данных, чтобы у вас были разные соединения «db» для разных баз данных, работающих на одном и том же порту. – JBone

0

Я запускаю несколько баз данных mongodb, используя graphQL для одного соединения. Это должно дать вам некоторое представление:

подключение:

import {MongoClient} from 'mongodb'; 
import assert from 'assert'; 
import graphqlHTTP from 'express-graphql'; 
const server_url = 'mongodb://localhost:27017/contest_server'; 
const client_url = 'mongodb://localhost:27017/contest_client'; 

// Establish connection to serverPool 
module.exports = (app, PORT, ncSchema) => { 
    MongoClient.connect(server_url, (serverErr, serverPool) => { 
     assert.equal(null, serverErr); 
     MongoClient.connect(client_url, (clientErr, clientPool) => { 
      assert.equal(null, serverErr); 
      app.use('/graphql', graphqlHTTP({ 
       schema: ncSchema, 
       context: { serverPool, clientPool }, 
       graphiql: true 
      })); 

      app.listen(PORT,() => { 
       console.log(`Server is listening on port ${PORT}`) 
      }); 

      serverPool.collection("votes").count((err, count) => { 
       console.log(count); 
      }); 

      clientPool.collection("counts").count((err, count) => { 
       console.log(count); 
      }); 
     }); 
    }); 
}; 
Смежные вопросы