You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sail项目MongoDB连接拒绝问题排查求助

Laravel Sail 连接 MongoDB 报错排查与修复

报错信息

No suitable servers found (serverSelectionTryOnce set): [connection refused calling hello on 'mongodb:21017']

触发错误的代码:

try {
    $l =  DB::connection('mongodb')->getMongoClient()->listDatabases();
    dd($l);
} catch (\Exception $e) {
    echo $e->getMessage();
}

当前环境配置

.env 文件配置

MONGO_DB_HOST=mongodb
MONGO_DB_PORT=21017
MONGO_DB_DATABASE=test
MONGO_DB_USERNAME=sail
MONGO_DB_PASSWORD=password

docker-compose 配置

mongodb:
    image: mongo:4.4.6
    ports:
        - '${FORWARD_MONGO_DB_PORT:-27017}:27017'
    environment:
        MONGO_INITDB_ROOT_USERNAME: '${MONGO_DB_USERNAME}'
        MONGO_INITDB_ROOT_PASSWORD: '${MONGO_DB_PASSWORD}'
        MONGO_INITDB_DATABASE: '${MONGO_DB_DATABASE}'
    volumes:
        - 'sail-mongodb:/data/db'
    networks:
        - sail

PHP 扩展状态

已在 PHP8.2 Dockerfile 中安装 MongoDB 扩展:

RUN pecl install mongodb

已验证项:

  • 从 laravel.test 容器内 ping mongodb 容器成功,无丢包
  • 可在 mongodb 容器内正常连接 mongo shell

问题根源

.env 中配置的 MONGO_DB_PORT=21017 错误。容器间通信使用的是容器内部监听端口,而非宿主机的转发端口。MongoDB 容器内部默认监听端口为 27017,你混淆了内部端口与外部转发端口。

修复步骤

  1. 修正 .env 端口配置
MONGO_DB_PORT=27017
  1. 重启 Sail 容器
./vendor/bin/sail down -v && ./vendor/bin/sail up -d
  1. 额外配置检查
    确认 config/database.php 中 MongoDB 连接配置正确引用环境变量,且认证数据库设置正确:
'mongodb' => [
    'driver' => 'mongodb',
    'host' => env('MONGO_DB_HOST', 'localhost'),
    'port' => env('MONGO_DB_PORT', 27017),
    'database' => env('MONGO_DB_DATABASE'),
    'username' => env('MONGO_DB_USERNAME'),
    'password' => env('MONGO_DB_PASSWORD'),
    'options' => [
        'database' => 'admin' // root 用户认证需指定 admin 数据库
    ]
],

若未安装 MongoDB 扩展包,需执行安装:

./vendor/bin/sail composer require jenssegers/mongodb

并在 config/app.php 中注册服务提供者:

'providers' => [
    // ...
    Jenssegers\Mongodb\MongodbServiceProvider::class,
],

内容的提问来源于stack exchange,提问作者Beaam 666

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:12:49