MongoTemplate连接,提示'Authentication failed.'

在阿里云mongodb上创建新用户。然后使用MongoTemplate连接,提示'Authentic

展开
收起
游客3wf36wlcxxr3k 2022-10-19 14:39:24 536 分享 版权
阿里云 AI 助理回答

要在阿里云MongoDB上创建新用户并使用MongoTemplate连接时避免'Authentication failed'的错误,请遵循以下步骤:

创建数据库账号

  1. 登录DMS控制台

    • 首先,登录阿里云数据管理DMS控制台。
  2. 执行创建用户命令

    • 在“SQL Console”页面,执行如下命令创建用户。例如,创建用户名为testUser,密码为SecureP@ss123,并授予读写权限(这里以读写角色为例,根据实际需求调整):
      db.createUser({user: "testUser", pwd: "SecureP@ss123", roles:[{role: "readWrite", db: "yourDatabase"}]})
      
    • 确保替换yourDatabase为实际需要授权的数据库名称。
    • 成功后,系统应返回ok: 1.0表示创建成功。

使用MongoTemplate连接

在Java应用中配置MongoTemplate时,确保提供正确的认证信息,包括用户名、密码、数据库以及可能的鉴权数据库(默认为admin,如果root用户或有特定要求则需指定):

import org.springframework.data.mongodb.core.MongoTemplate;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

    @Bean
    public MongoTemplate mongoTemplate() {
        String connectionString = "mongodb://testUser:SecureP@ss123@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/yourDatabase?authSource=admin";
        
        MongoClient mongoClient = MongoClients.create(connectionString);
        return new MongoTemplate(mongoClient, "yourDatabase");
    }
}
  • 替换dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717为您的实例地址和端口。
  • yourDatabase应与创建用户时指定的数据库一致。
  • authSource=admin指定了鉴权数据库为admin,这适用于非默认数据库账号或有特定鉴权需求的情况。

注意事项

  • 密码安全:确保使用强密码,并妥善保管。
  • 鉴权数据库:如果用户不是在admin数据库下创建的,需正确设置authSource参数。
  • 网络配置:检查ECS或应用服务器与MongoDB实例之间的网络访问策略,确保网络畅通。
  • 版本兼容性:确认MongoTemplate及MongoDB服务端版本间的兼容性,避免因版本不匹配导致的问题。

通过上述步骤配置,您应该能够成功使用MongoTemplate连接到阿里云MongoDB实例,且避免认证失败的问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:

数据库领域前沿技术分享与交流

收录在圈子:
+ 订阅
让用户数据永远在线,让数据无缝的自由流动
还有其他疑问?
咨询AI助理