0

com.mongodb.MongoTimeoutException连接到副本集时,我在 AWS 上偶尔遇到错误。rs.status()例如,我正在使用从 输出的域名进行连接mongo1.productionmongo2.production但我仍然遇到超时。

我的代码如下所示:

MongoClientOptions options = new MongoClientOptions.Builder()
                    .writeConcern(WriteConcern.ACKNOWLEDGED)
                    .readPreference(ReadPreference.primaryPreferred())
                    .connectTimeout(30000)
                    .socketTimeout(60000)
                    .connectionsPerHost(50)
                    .threadsAllowedToBlockForConnectionMultiplier(10)
                    .build();

List<ServerAddress> seeds = new ArrayList<ServerAddress>();
seeds.add(new ServerAddress("mongo1.production:27017"));
seeds.add(new ServerAddress("mongo2.production:27017"));
MongoClient client = new MongoClient(seeds, null, options);
4

1 回答 1

0

如果您尝试通过键入从终端运行 mongo...

mongod

...您将(可能)收到以下错误:

*********************************************************************
 ERROR: dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************

您所要做的就是创建 mongo 正在寻找的目录/路径(/data/db),如下所示:

sudo mkdir -p /data/db/

接着:

sudo chown `id -u` /data/db

或者,如错误消息中所述,您可以在 --dbpath 中提供一个现有目录,如下所示:

mongod --dbpath /srv/mongodb/

有关更多详细信息,请查看MongoDB 手册

于 2014-09-15T14:54:14.487 回答