|
Mongo: 2.0.1
Java driver: 2.3/2.4/2.7
代码很简单:
public class TestMongo {
public static void main(String[] args) throws UnknownHostException {
// TODO Auto-generated method stub
String url = "10.68.101.15:27017,10.68.101.15:27018";
//String url = "172.16.6.63:27017";
ArrayList<ServerAddress> addr = new ArrayList<ServerAddress>();
for (String s : url.split(",")) {
addr.add(new ServerAddress(s));
}
Mongo mongo = new Mongo(addr);
//Mongo mongo = new Mongo("10.68.101.15:27017");
mongo.debugString();
System.out.print(mongo.getAllAddress());
//mongo.slaveOk();
DB db = mongo.getDB("admin");
db.authenticate("pplive", "pplive".toCharArray());
System.out.print(db.getName());
System.out.print(db.isAuthenticated());
DBCollection dbC = db.getCollection("sso_private_message");
long count = dbC.getCount();
System.out.print(count + "");
}
}
错误是:
[10.68.101.15:27017, 10.68.101.15:27018]Exception in thread "main" com.mongodb.MongoException: can't find a master
at com.mongodb.DBTCPConnector.checkMaster(DBTCPConnector.java:434)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:209)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:305)
at com.mongodb.DB.command(DB.java:160)
at com.mongodb.DB.command(DB.java:183)
at com.mongodb.DB.command(DB.java:144)
at com.mongodb.DB._doauth(DB.java:542)
at com.mongodb.DB.authenticate(DB.java:479)
at TestMongo.main(TestMongo.java:25)
直接连接master没有问题,数据库也没有问题:
PRIMARY> rs.status();
{
"set" : "passport",
"date" : ISODate("2011-11-08T08:00:28Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "127.0.0.1:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"optime" : {
"t" : 1320722060000,
"i" : 1
},
"optimeDate" : ISODate("2011-11-08T03:14:20Z"),
"self" : true
},
{
"_id" : 1,
"name" : "127.0.0.1:27018",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 187376,
"optime" : {
"t" : 1320722060000,
"i" : 1
},
"optimeDate" : ISODate("2011-11-08T03:14:20Z"),
"lastHeartbeat" : ISODate("2011-11-08T08:00:27Z"),
"pingMs" : 0
}
],
"ok" : 1
}
|
|