当前位置: 首页 > 知识库问答 >
问题:

身份验证失败:分片MongoDB上的用户文档中缺少MONGODB-CR凭据:无法连接到:queryrouter0.example.com:27017:

龚博涛
2023-03-14

我有一个分片MongoDB设置。

我正在尝试从我的Laravel应用程序连接到它

在切分数据库之前,我使用laravel mongodb连接到我的常规mongodb实例。

这是我以前的配置

'mongodb' => array(
        'driver'   => 'mongodb',
        'host'     => env('MONGODB_HOST', 'localhost'),
        'port'     => env('MONGODB_PORT', 27017),
        'username' => env('MONGODB_USERNAME', ''),
        'password' => env('MONGODB_PASSWORD', ''),
        'database' => env('MONGODB_DATABASE', ''),
        'options' => array(
            'db' => env('MONGODB_AUTHDATABASE', '') //Sets the auth DB
        )
    )

我试图将MONGODB_主机更新为分片查询路由器主机名,但现在出现了错误

[MongoConnectionException]无法连接到:queryrouter0。实例com:27017:对用户名为“maxrosecollins”的数据库“admin”的身份验证失败:身份验证失败`

我可以在查询器0上的日志中看到。实例com服务器

2017-09-05T14:42:36.558 0000 I网络[thread2]连接已从45.32.144.169:33086#41615(1个连接现已打开)2017-09-05T14:42:36.560 0000 I访问[conn41615]身份验证数据库:admin{authenticate:1,用户:“maxrosecollins”,nonce:“xxx”,key:“xxx”}

2017-09-05T14:42:36.562 0000 I访问[conn41615]无法验证maxrosecollins@admin使用机制MONGODB-CR:AuthenticationFailed:用户文档中缺少MONGODB-CR凭据

2017-09-05T14:42:36.563 0000 I-[conn41615]端部连接45.32.144.169:33086(1个连接现已打开)

我可以使用以下方法连接到查询路由器。这是在同一台服务器上,我在使用laravel时遇到auth failed错误。我仔细检查了密码和用户名

mongo queryrouter0.example.com:27017 -u "maxrosecollins" -p "password" --authenticationDatabase "admin"

共有2个答案

岑畅
2023-03-14

我计算出我的laravel-mongoDB安装是版本2,它不支持SCRAM-SHA-1身份验证机制。

我使用作曲家更新升级到版本3,这也意味着升级php mongo适配器以及许多其他依赖项。

然后我运行了db。adminCommand({authSchemaUpgrade:1}) 请参见升级身份验证

之后,我可以用我的mongo查询路由器进行身份验证

耿和韵
2023-03-14
'connections' => [
     'mongodb' => [
      'driver'   => 'mongodb',
      'dsn' => 'mongodb://User:password@xxx-shard-00-00-uggj0.mongodb.net:27017,xxx-shard-00-01-uggj0.mongodb.net:27017,xxx-shard-00-02-uggj0.mongodb.net:27017/homestead?ssl=true&replicaSet=xxx-shard-0&authSource=admin',
      'database' => 'homestead',

  ],

我可以像这样连接到我的云地图集

 类似资料: