Anda dapat menggunakan DMS atau mongo shell untuk masuk ke konsol ApsaraDB for MongoDB. Topik ini menjelaskan masalah umum yang mungkin terjadi saat menggunakan mongo shell untuk masuk ke ApsaraDB for MongoDB beserta solusi yang sesuai.
Pesan "upaya koneksi gagal" ditampilkan
Masalah:
#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -p xxx
MongoDB shell version: 3.2.3
DB Prefix:
connecting to: 10.1.2.8:3717/admin
2016-05-31T15:25:58.940+0800 W NETWORK Failed to connect to 10.*.*.8:3717 after 5000 milliseconds, giving up.
2016-05-31T15:25:58.943+0800 E QUERY Error: couldn't connect to server 10.*.*.8:3717 (10.1.2.8), connection attempt failed
at connect (src/mongo/shell/mongo.js:181:14)
at (connect):1:6 at src/mongo/shell/mongo.js:181
exception: connect failedKemungkinan penyebab | Solusi |
Instance Elastic Compute Service (ECS) tempat Anda menjalankan perintah mongo shell dan instance ApsaraDB for MongoDB tidak berada di virtual private cloud (VPC) yang sama atau memiliki jenis jaringan yang berbeda. |
|
Metode pemecahan masalah tambahan: Anda dapat menjalankan perintah Telnet seperti telnet dds-ali123456789.mongodb.rds.aliyuncs.com 3717 untuk memeriksa apakah instance ApsaraDB for MongoDB dapat diakses.
Gambar ini menunjukkan bahwa URL dapat diselesaikan dan port 3717 berfungsi sebagaimana mestinya.
Pesan "Autentikasi gagal" ditampilkan
Masalah:
#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -p xxx
MongoDB shell version: 3.2.3
connecting to: 10.1.2.8:3717/test
2016-05-31T15:50:18.623+0800 E QUERY Error: 18 Authentication failed.
at DB._authOrThrow (src/mongo/shell/db.js:1271:32)
at (auth):6:8
at (auth):7:2 at src/mongo/shell/db.js:1271
exception: login failedKemungkinan Penyebab | Solusi |
Nama pengguna yang digunakan untuk masuk database salah. | Masuk ke database dengan nama pengguna yang benar. |
Kata sandi yang digunakan untuk masuk database salah. | Masuk ke database dengan kata sandi yang benar. |
Pengguna tidak sesuai dengan database autentikasi. | Cocokkan pengguna dengan database autentikasi. Sebagai contoh, pengguna root adalah pengguna dari database admin, sehingga database autentikasi harus ditetapkan sebagai admin jika Anda ingin menggunakan pengguna ini untuk masuk ke database. |
Versi klien sudah usang. | Pastikan versi mongo shell adalah 3.0 atau lebih baru. Untuk informasi tentang cara menginstal mongo shell, lihat Instal MongoDB. Untuk persyaratan versi klien dalam bahasa pemrograman lainnya, lihat Dokumentasi kompatibilitas driver. |
Kesalahan jaringan terjadi saat Anda menjalankan perintah isMaster
Masalah:
#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase test -u test -p xxxxxx
MongoDB shell version v3.4.10
connecting to: mongodb:ali1234567878.mongodb.rds.aliyuncs.com:3717/
2018-12-18T14:26:11.946+0800 E QUERY [thread1] Error: network error while attempting to run command 'isMaster' on host 'ft12345678.mongodb.rds.aliyuncs.com:3717' :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failedKemungkinan penyebab | Solusi |
Alamat IP instance ECS tidak ada dalam daftar putih instance ApsaraDB for MongoDB. | Tambahkan alamat IP instance ECS ke daftar putih instance ApsaraDB for MongoDB. Untuk informasi lebih lanjut, lihat Konfigurasi daftar putih atau grup keamanan ECS untuk instance ApsaraDB for MongoDB. |
Pesan "Timeout saat menerima pesan" ditampilkan
org.springframework.data.mongodb.UncategorizedMongoDbException: Timeout saat menerima pesan; nested exception is com.mongodb.MongoSocketReadTimeoutException: Timeout saat menerima pesanKemungkinan Penyebab | Solusi |
Query lambat yang abnormal memakan sumber daya instance dan menyebabkan pemanfaatan CPU melonjak atau bahkan mencapai puncak. | Periksa query lambat. Kami sarankan Anda membuat indeks untuk optimasi. Untuk informasi lebih lanjut, lihat Menangani masalah pemanfaatan CPU tinggi pada sebuah instance. |
Konfigurasi kolam koneksi aplikasi, seperti pengaturan timeout, salah. |