最近使用阿里的mongodb,在连接时遇到的一些问题
可能是阿里的对接文档有段时间没更新了,所以看起来会有不一致
一.获取连接
1.阿里提供的对接文档(2018-9-1查询)
Java 连接示例
相关链接
-
Jar包下载
获取云数据库 MongoDB 连接信息
Java Demo Code
<dependencies><dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>3.0.4</version></dependency></dependencies>
Java Code
import java.util.ArrayList;import java.util.List;import java.util.UUID;import org.bson.BsonDocument;import org.bson.BsonString;import org.bson.Document;import com.mongodb.MongoClient;import com.mongodb.MongoClientOptions;import com.mongodb.MongoClientURI;import com.mongodb.MongoCredential;import com.mongodb.ServerAddress;import com.mongodb.client.MongoCollection;import com.mongodb.client.MongoCursor;import com.mongodb.client.MongoDatabase;public class Main {public static ServerAddress seed1 = new ServerAddress("demotest-1.mongodb.tbc3.newtest.rdstest.aliyun-inc.com", 27017);public static ServerAddress seed2 = new ServerAddress("demotest-2.mongodb.tbc3.newtest.rdstest.aliyun-inc.com", 27017);public static String username = "demouser";public static String password = "123456";public static String ReplSetName = "mgset-1441984463";public static String DEFAULT_DB = "admin";public static String DEMO_DB = "test";public static String DEMO_COLL = "testColl";public static MongoClient createMongoDBClient() {// 构建Seed列表List<ServerAddress> seedList = new ArrayList<ServerAddress>();seedList.add(seed1);seedList.add(seed2);// 构建鉴权信息List<MongoCredential> credentials = new ArrayList<MongoCredential>();credentials.add(MongoCredential.createScramSha1Credential(username,DEFAULT_DB, password.toCharArray()));// 构建操作选项,requiredReplicaSetName属性外的选项根据自己的实际需求配置,默认参数满足大多数场景MongoClientOptions options = MongoClientOptions.builder().requiredReplicaSetName(ReplSetName).socketTimeout(2000).connectionsPerHost(1).build();return new MongoClient(seedList, credentials, options);}public static MongoClient createMongoDBClientWithURI() {//另一种通过URI初始化//mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]MongoClientURI connectionString = new MongoClientURI("mongodb://" + username + ":" + password + "@" + seed1 + "," + seed2 + "/" + DEFAULT_DB + "?replicaSet=" + ReplSetName);return new MongoClient(connectionString);}public static void main(String args[]) {MongoClient client = createMongoDBClient();//or//MongoClient client = createMongoDBClientWithURI();try {// 取得Collecton句柄MongoDatabase database = client.getDatabase(DEMO_DB);MongoCollection<Document> collection = database.getCollection(DEMO_COLL);// 插入数据Document doc = new Document();String demoname = "JAVA:" + UUID.randomUUID();doc.append("DEMO", demoname);doc.append("MESG", "Hello AliCoudDB For MongoDB");collection.insertOne(doc);System.out.println("insert document: " + doc);// 读取数据BsonDocument filter = new BsonDocument();filter.append("DEMO", new BsonString(demoname));MongoCursor<Document> cursor = collection.find(filter).iterator();while (cursor.hasNext()) {System.out.println("find document: " + cursor.next());}} finally {//关闭Client,释放资源client.close();}return ;}
2.我的控制台
参数里边基本都有
3.注意事项,如果使用的是单节点,请忽略节点参数
4.我的连接测试类如下
这样就能获取到连接了
二.开放公网连接
上面是内网连接地址,只能阿里云内网连接
下面是外网连接地址,默认情况下没有,如果不设置,外网是连接不到的