【问题标题】:Laravel MongoDB - command delete requires authenticationLaravel MongoDB - 命令删除需要身份验证
【发布时间】:2021-11-22 21:55:17
【问题描述】:

使用 Mongodb 作为数据库开发 Laravel 应用,今天遇到了一个奇怪的问题。

不知何故,当我使用该应用程序时,在任何需要使用 mongo 命令的地方,我都会收到“命令需要身份验证”。这显然意味着我没有连接到数据库,但是“php artisan migrate --database=mongodb”确实可以正常工作,所有索引等都已创建。

使用与我的 .env 中相同的凭据,我可以使用 Compass 连接到数据库。

该应用是否有任何理由使用与 migrate 命令不同的配置?

供参考:

config/database.php
'mongodb' => [
            'driver' => 'mongodb',
            'host' => env('MONGO_DB_HOST', 'localhost'),
            'dsn' => env('MONGO_DB_DSN', 'mongodb://') . env('MONGO_DB_HOST', 'localhost'),
            'port' => 27017,
            'database' => env('MONGO_DB_DATABASE', 'rte_golf'),
            'username' => env('MONGO_DB_USERNAME'),
            'password' => env('MONGO_DB_PASSWORD'),
            'options' => [
                // here you can pass more settings to the Mongo Driver Manager
                // see https://www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete parameters that you can use
                'database' => env('DB_AUTHENTICATION_DATABASE', 'admin'), // required with Mongo 3+
            ],
        ],
.env
MONGO_DB_HOST=mongodb
MONGO_DB_DATABASE=rte_golf
MONGO_DB_USERNAME=username
MONGO_DB_PASSWORD=password
docker-compose 创建 mongo 镜像
mongodb:
    image: mongo
    restart: always
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: username
      MONGO_INITDB_ROOT_PASSWORD: password
    networks:
      - backoffice

【问题讨论】:

    标签: php laravel mongodb


    【解决方案1】:

    考虑将以下行添加到您的 docker-compose 以启用身份验证模式

     command: [--auth]
    

    例如

    version: '3.3'
    
    services:
       mongo:
          container_name: mongodb
          image: mongo
          ports:
           - "27017:27017"
          volumes:
           - mongodbdata:/data/db
          command: [--auth]
          restart: always
    volumes:
       mongodbdata:
    
    networks:
       default:
          external:
             name: mongo-network
    

    【讨论】:

    • 身份验证模式已经启用,但环境:MONGO_INITDB_ROOT_USERNAME:用户名 MONGO_INITDB_ROOT_PASSWORD:密码
    猜你喜欢
    • 2021-04-10
    • 2020-11-26
    • 2019-03-25
    • 2022-01-10
    • 2019-12-17
    • 2019-07-20
    • 2020-11-16
    • 2017-07-17
    • 2020-08-15
    相关资源
    最近更新 更多