sql >> Database teknologi >  >> NoSQL >> MongoDB

Kontrollerer forbindelsen til MongoDB

1. Oversigt

I denne øvelse lærer vi at kontrollere forbindelsen med MongoDB.

Det er vigtigt, at vi for at oprette forbindelse til en enkelt MongoDB-instans skal angive URI’en for MongoDB-instansen.

2. Kontrol af forbindelse ved hjælp af Mongo Shell

I dette afsnit opretter vi forbindelse til MongoDB-serveren ved hjælp af mongo shell-kommandoen. Vi vil undersøge forskellige tilfælde af forbindelse til MongoDB.

2.1. Kontrollerer forbindelsen på standardporten

Som standard kører MongoDB på port 27017, men vi kan også køre det på en anden port. Vi kan oprette forbindelse til MongoDB-serveren ved hjælp af den simple mongo-kommando:

$ mongo
MongoDB shell version v4.4.2
connecting to: mongodb://localhost:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("b7f80a0c-c7b9-4aea-b34c-605b85e601dd") }
MongoDB server version: 4.0.1-rc0-2-g54f1582fc6

I kommandoen ovenfor antog MongoDB som standard porten som 27017 . Hvis MongoDB-serveren er nede, får vi følgende fejl:

$ mongo --host localhost --port 27017 admin
MongoDB shell version v4.4.2
connecting to: mongodb://localhost:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Error: couldn't connect to server localhost:27017, connection attempt failed:
  SocketException: Error connecting to localhost:27017 :: caused by :: Connection refused :
[email protected]/mongo/shell/mongo.js:374:17
@(connect):2:6
exception: connect failed
exiting with code 1

I dette tilfælde fik vi fejlen, fordi vi ikke kunne oprette forbindelse til serveren.

2.2. Kontrol af forbindelse på sikret MongoDB-database

MongoDB kan beskyttes med godkendelse. I så fald skal vi videregive brugernavnet og adgangskoden i kommandoen:

$ mongo mongodb://baeldung:[email protected]:27017

Her brugte vi brugernavnet "baeldung" og adgangskoden "baeldung" for at oprette forbindelse til MongoDB, der kører på localhost.

2.3. Kontrol af forbindelse på brugerdefineret port

Vi kan også køre MongoDB på en brugerdefineret port. Alt, hvad vi skal gøre, er at foretage ændringer i mongod.conf fil. Hvis MongoDB kører på en anden port, skal vi angive den port i kommandoen:

$ mongo mongodb://localhost:27001

Her, i mongo-skallen, kan vi også kontrollere de aktuelt aktive forbindelser på databaseserveren.

var status = db.serverStatus();
status.connections
{
    "current" : 21,
    "available" : 15979
}

serverstatus returnerer et dokument, der giver et overblik over den aktuelle status for databaseprocessen. Kører jævnligt serverStatus kommandoen vil indsamle statistik om MongoDB-instansen.

3. Kontrol af forbindelse ved hjælp af Java-driverkode

Indtil videre har vi lært at tjekke forbindelsen med MongoDB ved hjælp af shellen. Lad os nu se på det samme ved at bruge Java-driverkode:

MongoClientOptions.Builder builder = MongoClientOptions.builder();
// builder settings
ServerAddress ServerAddress = new ServerAddress("localhost", 27017);
MongoClient mongoClient = new MongoClient(ServerAddress, builder.build());

try {
    System.out.println("MongoDB Server is Up:- "+mongoClient.getAddress());
    System.out.println(mongoClient.getConnectPoint());
    System.out.println(db.getStats());
} catch (Exception e) {
    System.out.println("MongoDB Server is Down");
} finally{
    mongoClient.close();
}

I ovenstående kode oprettede vi først MongoClientOption builder for at tilpasse konfigurationerne af MongoClient forbindelse, og oprettede derefter MongoClient forbindelse ved hjælp af serveradressen. Antag, at MongoDB-serveren kører på 27017 havn for den lokale vært. Ellers er MongoClient  vil give en fejl.


  1. hvad er pagecache, dentries, inoder?

  2. Hvordan får man ReferenceField-data i mongoengine?

  3. Migrering af MongoDB til DynamoDB, del 2

  4. shutdown redis-server fra kommandolinjen