Tp MongoDB Authentication failed. 解决方案
正常配置下,
return [
'default' => 'mongo',
'connections' => [
'mongo' => [
// 数据库类型
'type' => 'mongo',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'cbam',
// 数据库用户名
'username' => 'cbam',
// 数据库密码
'password' => 'cbam777',
// 数据库连接端口
'hostport' => '27017',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => '',
// 主键名
'pk' => '_id',
// 主键类型
'pk_type' => 'objectID',
// 断线重连
'break_reconnect' => true,
// 关闭SQL监听日志
'trigger_sql' => false,
// 自定义分页类
'bootstrap' => ''
],
],
];
使用MongoDB数据库,会出现数据库访问权限问题,如下:
#0 [11]AuthenticationException in Mongo.php line 266 Authentication failed.
.
解决方案一:
database.php 添加 dsn配置参数
'dsn' => 'mongodb://' .
env('database.username', '数据库用户名') . ':' .
env('database.password', '数据库密码') . '@' .
env('database.hostname', '127.0.0.1') . ':' .
env('database.hostport', '27017') . '/' .
env('database.database', '数据库名称'),
.
解决方案二:
database.php 中的 params 项中指定认证数据库
// 数据库连接参数
'params' => ['authSource' => env('database.database', '数据库名称')],
两种方案都可以解决,推荐方案二,更加简洁,
总结发布出来,以便有遇到类似问题的朋友查阅

