Symfony 응용 프로그램에서 mongo 컬렉션을 삭제하려고하는데 컬렉션을 삭제하려고하면 "인증 실패"가 표시됩니다.데이터베이스를 선택하고컬렉션을 선택할 수 있습니다.
MongoService에 삽입 한 mongoUrl 연결 문자열은 내 docker compose에 지정된 것과 동일한 자격 증명을 사용합니다.
mongodb://root:[email protected]_mongo_1:27017
참고 : 잘못된 자격 증명을 입력해도 오류가 발생하지 않고 데이터베이스와 컬렉션을 선택할 수 있습니다.
질문 :루트 자격 증명을 사용할 때 컬렉션을 삭제하려고하면 "인증 실패"가 발생하는 이유는 무엇입니까? 루트 사용자 이름과 비밀번호로 올바르게 인증하는 방법은 무엇입니까?
오류 :관련 코드 :[2018-06-21 08:45:41] request.CRITICAL: Uncaught PHP Exception MongoDB\Driver\Exception\AuthenticationException: "Authentication failed." at /var/www/redaph/vendor/mongodb/mongodb/src/Operation/DropCollection.php line 108 {"exception":"[object] (MongoDB\Driver\Exception\AuthenticationException(code: 11): Authentication failed. at /var/www/redaph/vendor/mongodb/mongodb/src/Operation/DropCollection.php:108)"} []
docker-compose.yml 스 니펫
version '3':
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: "XXX"
volumes:
- mdb_data:/data/db
MongoService.php 스 니펫 :
class MongoService
{
const QUESTION_RESPONSE_COLLECTION = "question_response";
const DATABASE_NAME = "redaph";
private $mongoDB;
public function __construct($mongoUrl)
{
$mongoClient = new MongoClient($mongoUrl);
$this->mongoDB = $mongoClient->selectDatabase(self::DATABASE_NAME);
}
private function getQuestionResponseCollection(){
return $this->mongoDB->selectCollection(self::QUESTION_RESPONSE_COLLECTION);
}
public function generateQuestionResponses(){
/** code here to populate $questionResponses **/
$collection = $this->getQuestionResponseCollection();
#-> Authentication Fails Here
$collection->drop();
$results = $collection->insertMany($questionResponses);
return $results->getInsertedCount();
}
public function getQuestionResponses(){
return $this->getQuestionResponseCollection()->find([]);
}
}
- 답변 # 1
관련 자료
- php - 포착되지 않은 예외 - datetime :: __ construct () : 시간 문자열을 구문 분석하지 못했습니다
- php - pdo 포착되지 않은 예외 - 테이블에 새 행을 삽입 할 때 삽입 값 목록이 열 목록과 일치하지 않습니다
- python - psycopg2operationalerror - fatal : 클라이언트 인증 실패
- node.js - 잡히지 않은 예외 및 처리되지 않은 약속 거부
- Authentication failed - 인증 실패 - git로 원격 저장소를 복제 할 수 없음 (eclipse에서만 발생)
- ios - addObserver에서 NSException 유형의 포착되지 않은 예외로 종료하는 이유
- codeigniter 3 - catch되지 않은 예외가 발생했습니다 유형 - runtimeexception
- android : 빌터에서 예외로 빌드가 실패했습니다
- ios - 동기화되지 않은 예외 'nsgenericexception'으로 인해 앱 종료가 해결됩니다 이유 - '*** 컬렉션이 열거되는 동안 변경되었습니다
- ion - android 치명적인 예외 - javalangnoclassdeffounderror : 실패한 분석 : lorg/apache/http/requestline;
- node.js - catch되지 않은 예외 - eaddrinuse 바인드, 해당 포트를 사용하는 프로세스가 없습니다
- dart - flutter http exception이 발생했습니다 _exception (예외 - 데이터로드 실패)
- 사용자가 클라이언트 응용 프로그램에 할당되지 않은 경우 ASPNet Core를 사용한 OKTA 인증에서 처리되지 않은 예외가 발생 함
- java - Spring 보안 기본 인증에서 인증이 실패했을 때 ResponseEntity (HttpStatusUNAUTHORIZED)를 어떻게 반환합니까?
- javascript - 약속의 모든 것에서 잡히지 않은 예외
- ios - 잡히지 않은 예외 'NSInvalidArgumentException'으로 인해 앱이 종료됩니다
- azure - aas - invoke-processpartition : 인증 실패
- error handling - Haxe는 전역 예외 처리기를 포착하지 못했습니다
- android - 데모 앱 빌드에 실패했습니다 예외를 해결하는 방법?
- Windows에서 올바른 자격 증명으로 Jenkins Git 인증 실패
- PHP에서 아래 결과에 맞는 배열을 작성하는 방법
- Symfony PHPUnit -모든 테스트 후에만 데이터베이스 새로 고침
- Symfony 5.4에서 php-amqplib/rabbitmqbundle** 생산자를 서비스로 등록하면 오류 메시지가 계속 생성됨
- php : Doctrine symfony에서 기본 키가 생성되지 않습니다.
- php : 데이터가 있는 경우 업데이트해야 합니다. 그렇지 않으면 symfony/doctrine에 삽입합니다.
- php : Symfony 5는 프로덕션에서 YAML을 구문 분석하는 데 많은 시간을 할애합니다.
- php : 교리 고정 장치를 사용하는 동안 db에서 엔터티를 가져오는 방법은 무엇입니까?
- php : "composer require symfony/security-core"를 실행하는 것을 잊으셨습니까? "xxx.twig"의 알 수 없는 기능 "is_granted"
- php : 나뭇가지가 웹 브라우저에서 렌더링되지 않고 일반 HTML code가 표시됩니다.
- PHP로 대화형 스크립트를 호출하면 키보드 입력 문제가 발생함
이 문제를 철저히 조사한 후 MongoService의 작동 방식을 변경하고 몽고 볼륨을 비 웠습니다.
주된 문제는 컨테이너를 만든 후 얼마 전에 비밀번호를 변경했다는 것입니다.
MongoService.php
services.yml