1. 概述
在这个教程中,我们将学习如何检查与MongoDB的连接。
为了连接到单个MongoDB实例,我们需要指定MongoDB实例的URI。
2. 使用Mongo Shell检查连接
2.1. 在默认端口上检查连接
默认情况下,MongoDB运行在端口27017,但也可以在其他端口上运行。 我们可以使用简单的mongo命令连接到MongoDB服务器:
$ 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
在上述命令中,MongoDB默认假设端口为27017。如果MongoDB服务器无法访问,我们会收到以下错误:
$ 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 :
connect@src/mongo/shell/mongo.js:374:17
@(connect):2:6
exception: connect failed
exiting with code 1
在这种情况下,我们收到错误是因为无法连接到服务器。
2.2. 在受保护的MongoDB数据库上检查连接
MongoDB可以使用身份验证进行保护。在这种情况下,我们需要在命令中传递用户名和密码:
$ mongo mongodb://baeldung:baeldung@localhost:27017
这里我们使用用户名"baeldung"和密码"baeldung"连接到本地主机上的MongoDB。
2.3. 在自定义端口上检查连接
我们还可以在自定义端口上运行MongoDB。只需在mongod.conf
文件中进行更改即可。如果MongoDB在其他端口上运行,我们需要在命令中提供该端口号:
$ mongo mongodb://localhost:27001
在MongoDB shell中,我们还可以检查数据库服务器的当前活动连接:
var status = db.serverStatus();
status.connections
{
"current" : 21,
"available" : 15979
}
serverStatus
命令返回一个文档,概述了数据库进程的当前状态。定期运行serverStatus
命令将收集有关MongoDB实例的统计信息。
3. 使用Java驱动程序代码检查连接
到目前为止,我们已经学会了使用shell检查与MongoDB的连接。现在让我们看看如何使用Java驱动程序代码实现相同的功能:
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();
}
在上面的代码中,我们首先创建了一个MongoClientOption
构建器来自定义MongoClient
连接配置,然后使用服务器地址创建MongoClient
连接。如果MongoDB服务器在localhost的27017端口运行,否则MongoClient
会抛出错误。
4. 总结
在这个教程中,我们学习了在不同实时场景下检查MongoDB服务器的连接。
首先,我们使用默认的mongo命令进行检查,然后使用带有身份验证的命令,并连接到运行在自定义端口上的MongoDB服务器。接下来,我们分别通过MongoDB shell和Java驱动程序代码检查了连接。
所有案例的示例可以在GitHub上找到。