我无法直接连接到我的mongodb数据库
如果数据库URI是这样的,则无法连接
DATABASE_URI=mongodb://root:toor@localhost:27017/library
字符串
我可以连接,如果它是这样的,但它会创建shcema数据库“测试”,我不希望这样,我想模式设置正确的数据库,我选择
DATABASE_URI=mongodb://root:toor@localhost:27017
型
这里我的配置和我一直试图解决这个问题
- NestJ在本地机器上运行(3000)
- Mongo和Mongo Express在Docker上运行(20701/8081)
我使用docker-compose.yml来运行Mongo和MongoExpress
version: '3'
services:
mongodb:
image: mongo
container_name: mongo-library
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=password
- MONGO_INITDB_DATABASE=library
ports:
- '27017:27017'
volumes:
- ./data/db:/app/data/db
networks:
- app-network
restart: always
mongo-express:
image: mongo-express
container_name: mongo-express-library
environment:
- ME_CONFIG_MONGODB_SERVER=mongodb
- ME_CONFIG_MONGODB_ENABLE_ADMIN=true
- ME_CONFIG_MONGODB_ADMINUSERNAME=root
- ME_CONFIG_MONGODB_ADMINPASSWORD=password
- ME_CONFIG_BASICAUTH_USERNAME=root
- ME_CONFIG_BASICAUTH_PASSWORD=password
- ME_CONFIG_MONGODB_PORT=27017
ports:
- '8081:8081'
depends_on:
- mongodb
networks:
- app-network
restart: always
networks:
app-network:
driver: bridge
型
我试
- Database_URI=mongodb://root:toor@localhost:27017/library
- Database_URI=mongodb://root:toor@mongodb:27017/library
日志
[Nest] 1504 - 10/30/2023, 23:09:26 ERROR [MongooseModule] Unable to connect to the database. Retrying (1)...
[Nest] 1504 - 10/30/2023, 23:09:50 ERROR [ExceptionHandler] Authentication failed.
型
如果我使用
- Database_URI=mongodb://localhost:27017/library
但由于我想设置用户名和密码使用这种方法将给予错误这个错误
[Nest] 20624 - 10/30/2023, 23:22:28 ERROR [ExceptionsHandler] Command find requires authentication
MongoServerError: Command find requires authentication
型
我试过搜索,可以来的解决方案总是改变localhost到我的服务名称是不工作.使用数据库_URI=mongodb://root:toor@localhost:27017/库应该肯定为大多数情况下工作,但它不会为我工作不知何故.我尝试更改用户名和密码仍然无法连接.
1条答案
按热度按时间3okqufwl1#
根据你的docker-compose,以及你在本地运行Nest服务器的事实,你应该使用像
mongodb://root:password@localhost:27017/library
这样的连接URI。如果你仍然面临问题,我会尝试直接连接一个mongo shell,同时传递身份验证参数,看看会发生什么。