我有一个分片的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_HOST
更新为分片查询路由器主机名,但我现在收到错误
[MongoConnectionException] 无法连接到:queryrouter0.example.com:27017:使用用户名'maxrosecollins'对数据库'admin'进行身份验证失败:auth failed`
我可以在queryrouter0.example.com
服务器
2017-09-05T14:42:36.558 + 0000 I NETWORK [thread2]连接从45.32.144.169:33086#41615接受(1个连接现已打开) 2017-09-05T14:42:36.560 + 0000 I ACCESS [conn41615]验证db:admin {authenticate:1,user:“maxrosecollins”,nonce:“xxx”,key:“xxx”}
2017-09-05T14:42:36.562 + 0000 I ACCESS [conn41615]无法通过机制MONGODB-CR验证maxrosecollins @ admin:AuthenticationFailed:用户文档中缺少MONGODB-CR凭证
2017-09-05T14:42:36.563 + 0000 I - [conn41615] end connection 45.32.144.169:33086(1个连接现已开启)
我可以使用以下方法连接到查询路由器。 这是在同一台服务器上我使用laravel时获得auth失败错误。我有双重检查密码和用户名
mongo queryrouter0.example.com:27017 -u "maxrosecollins" -p "password" --authenticationDatabase "admin"
答案 0 :(得分:0)
'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',
],
我可以像这样连接到我的云图集
答案 1 :(得分:0)
我制定了laravel-mongodb
安装版本2,它不支持SCRAM-SHA-1
身份验证机制。
我使用composer update
升级到版本3,这也意味着升级php mongo适配器以及许多其他依赖项。
然后我运行了db.adminCommand({authSchemaUpgrade: 1});
see upgrading auth
在此之后,我可以使用我的mongo查询路由器进行身份验证