mongo-express / mongo-express-docker

a dockerized mongo-express for viewing mongoDB in the browser
MIT License
201 stars 93 forks source link

Authentication failed. #32

Closed wade-liwei closed 8 months ago

wade-liwei commented 5 years ago

Waiting for 192.168.150.31:27017... ,Welcome to mongo-express ,------------------------ , , ,Mongo Express server listening at http://0.0.0.0:8081 ,Server is open to allow connections from anyone (0.0.0.0) ,Database connected ,{ MongoError: Authentication failed. , at Function.MongoError.create (/node_modules/mongodb-core/lib/error.js:31:11) , at /node_modules/mongodb-core/lib/connection/pool.js:483:72 , at authenticateStragglers (/node_modules/mongodb-core/lib/connection/pool.js:429:16) , at Connection.messageHandler (/node_modules/mongodb-core/lib/connection/pool.js:463:5) , at Socket. (/node_modules/mongodb-core/lib/connection/connection.js:319:22) , at emitOne (events.js:116:13) , at Socket.emit (events.js:211:7) , at addChunk (_stream_readable.js:263:12) , at readableAddChunk (_stream_readable.js:250:11) , at Socket.Readable.push (_stream_readable.js:208:10) , name: 'MongoError', , message: 'Authentication failed.', , ok: 0, , errmsg: 'Authentication failed.', , code: 18, , codeName: 'AuthenticationFailed' } ,Admin Database connected ,unable to list databases ,{ MongoError: command listDatabases requires authentication , at Function.MongoError.create (/node_modules/mongodb-core/lib/error.js:31:11) , at /node_modules/mongodb-core/lib/connection/pool.js:483:72 , at authenticateStragglers (/node_modules/mongodb-core/lib/connection/pool.js:429:16) , at Connection.messageHandler (/node_modules/mongodb-core/lib/connection/pool.js:463:5) , at Socket. (/node_modules/mongodb-core/lib/connection/connection.js:319:22) , at emitOne (events.js:116:13) , at Socket.emit (events.js:211:7) , at addChunk (_stream_readable.js:263:12) , at readableAddChunk (_stream_readable.js:250:11) , at Socket.Readable.push (_stream_readable.js:208:10) , name: 'MongoError', , message: 'command listDatabases requires authentication', , ok: 0, , errmsg: 'command listDatabases requires authentication', , code: 13, , codeName: 'Unauthorized' } ,

brenojac commented 4 years ago

Apparently this problem in unsolvable :(. Several threads were open and no replies to them.

Braedencraig commented 3 years ago

waiting for this solve still as well

solc42 commented 3 years ago

Have you tried solution https://github.com/mongo-express/mongo-express-docker/issues/35#issuecomment-543788773 as-is ?

Provided soultions work without problem for me on ubuntu and macos.

But according to this https://github.com/docker-library/mongo/issues/451 it may depend on distro and versions indeed. So you should check this at least.

moonstar-x commented 3 years ago

I ran into this today while using the following docker-compose.yml:

version: "3.9"

services:
  db:
    image: mongo:latest
    ports:
      - 27017:27017
    volumes:
      - ./data:/data/db
      - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
    environment:
      MONGO_INITDB_ROOT_USERNAME: dev
      MONGO_INITDB_ROOT_PASSWORD: example

  web:
    image: mongo-express:latest
    ports:
      - 8081:8081
    depends_on: 
      - db
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: dev
      ME_CONFIG_MONGODB_ADMINPASSWORD: example
      ME_CONFIG_MONGODB_SERVER: db

The only way to fix it I've found has been to restart the mongo-express container after the mongo one has been already been initialized. It seems that the mongo container is reported ready before it actually is, making mongo-express try to connect to a service that is not yet available. If you restart the mongo-express container it seems to connect just fine.

Igsu-Bravo commented 2 years ago

After a couple of hours of trying different combinations and reading multiple threads, I got my setup to work using the following docker-compose.yml, I hope it helps anyone stuck with this issue

version: '3.9'
services:
  mongodb:
    container_name: mongo-dev
    image: mongo
    environment:
      - MONGO_INITDB_ROOT_USERNAME:"${MONGO_ROOT_USER}"
      - MONGO_INITDB_ROOT_PASSWORD:"${MONGO_ROOT_PASSWORD}"
      - MONGO_INITDB_DATABASE:"db"
    ports:
      - '27017:27017'
  mongo-express:
    container_name: mongo-express
    image: mongo-express:0.54.0
    restart: always
    depends_on:
      - mongodb
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME="${MONGO_ROOT_USER}"
      - ME_CONFIG_MONGODB_ADMINPASSWORD="${MONGO_ROOT_PASSWORD}"
      - ME_CONFIG_MONGODB_SERVER=mongo-dev
      - ME_CONFIG_BASICAUTH_USERNAME=${MONGOEXPRESS_LOGIN}
      - ME_CONFIG_BASICAUTH_PASSWORD=${MONGOEXPRESS_PASSWORD}
    ports:
      - '8081:8081'
Asher-Ding commented 1 year ago

35

I hope my reply to this issue helps you a lot!

rtritto commented 1 year ago

@Asher-Ding thanks.

@wade-liwei please can you check?