Selesai! Jadi, apa yang telah saya lakukan:
-
Saya hanya mencoba menghubungkan ke tier cluster melalui driver3.6 dan menulis
mongodb+srv://user:@cluster0-ox90k.mongodb.net/test?retryWrites=true
Saya selalu mendapatkan kesalahan: Connection strings must start with 'mongodb://' .
-
Oke, saya menghapus cuplikan
+srvdan menulis dengan cara yang samamongodb://user:@cluster0-ox90k.mongodb.net/test?retryWrites=true
dan dapatkan lagi kesalahannya:
com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=cluster0-ox90k.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: cluster0-ox90k.mongodb.net}, caused by {java.net.UnknownHostException: cluster0-ox90k.mongodb.net}}]
Jadi, saya menulis melalui driver3.4 atau sebelumnya seperti
mongodb://user:<PASSWORD>@cluster0-shard-00-00-ox90k.mongodb.net:27017,cluster0-shard-00-01-ox90k.mongodb.net:27017,cluster0-shard-00-02-ox90k.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true
dan akhirnya terpecahkan.
Catatan:Anda bisa mendapatkan string koneksi ini dari konsol manajemen Atlas dengan menyetel driver Java Anda ke '3.4 atau lebih baru'. Ini akan membantu Anda menghindari keharusan membuat sendiri string koneksi.
Diperbarui: jika Anda ingin menggunakan driver 3.7+ , Anda perlu menulis alih-alih memformat koneksi (dan untuk menghindari masalah saya di atas)
MongoClientURI uri = new MongoClientURI("mongodb+srv://admin:example@sqldat.com/test?retryWrites=true");
MongoClient mongoClient = new MongoClient(uri);
varian lain menggunakan MongoClients.create() (per rilis 3.7), dan seperti yang disebutkan di sini:
MongoClient mongoClient = MongoClients.create("mongodb+srv://admin:example@sqldat.com/test?retryWrites=true");
Catatan: kata sandi harus ditulis tidak seperti mongodb://user:<mypassword>@... ,
hanya dalam format mongodb://user:example@sqldat.com
tanpa kawat gigi <> .