prosource

--db를 사용하여 백업 mongodump를 생성할 수 없습니다.인증 실패

probook 2023. 2. 27. 22:27
반응형

--db를 사용하여 백업 mongodump를 생성할 수 없습니다.인증 실패

MongoDB(버전 3)에 있는 모든 데이터베이스의 백업을 생성할 때:

mongodump --username bacUser --password 12345

괜찮아요.그러나 선택한 db의 백업을 생성하려고 하면:

mongodump --username bacUser --password 12345 --db test

다음과 같은 오류가 발생합니다.

실패: db 서버 연결 오류: SASL 인증 단계에서 서버가 오류를 반환했습니다.인증에 실패했습니다.

다음과 같은 작업을 수행합니다.

--authenticationDatabase admin

mongodump 및 mongorestore 명령어에는 mongodb 사용자의 credential이 저장되어 있는 데이터베이스의 이름이 필요합니다.(감사합니다 @ Zubair Alarm).

이거면 될 거야.

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD

또, 유저명 또는 패스워드가 잘못되어 있는 경우, 이 에러가 표시되는 일이 있습니다.

mongodump --host <host-ip> --port 27017 --db <database>  --authenticationDatabase admin --username <username> --password <password> --out ./Documents/

모든 추적 끝에, 나는 mongdb에서 덤프할 위의 작업 명령어를 발견했다.

mongodump --collection coll_name --db DBname  -u UName -p *** 
          --authenticationDatabase <admin/privileged> --host ip  
          --port portNo  --out foldName
mongodump   --authenticationDatabase admin -uroot -pyourpassword

여기서 root은 사용자 이름이고 your password는 비밀번호입니다.

이 명령어는 현재 디렉토리의 모든 데이터베이스 백업을 백업/덤프합니다.

덤프 및 복원용

mongodump --db nameDatabase --username userName --password password --authenticationDatabase admin --out mongodb\
mongorestore --db nameDatabase --username userName --password password --authenticationDatabase admin <path backup> --drop

그래도 --authenticationDatabase admin 에 같은 에러가 표시되는 경우는, 유저명과 패스워드가 잘못되었을 가능성이 있습니다.적절한 역할을 가진 사용자 db.createUser()를 추가합니다(쓰기 권한도 부여했습니다).

than run 다음 명령어(로컬에서 실행 중인 경우 -h를 참조)

 mongodump -h <ip>:<port_number> -d db_name -u newUser -p newPassword -o /home/mongodump/

이게 도움이 되길...

MongoDB 3.2에서는 다음 절차가 도움이 되었습니다.

  1. admin 사용자 이름과 pw가 올바른지 확인합니다.mongo 쉘을 사용하여 이 작업을 수행할 수 있습니다.

몽고

admin db.authpasswordadmin", "your password" 사용)

1이 반환되면 비밀번호는 올바른 것입니다.

  1. 그런 다음 "백업" 역할을 관리자에게 추가합니다(또는 이 역할이 이미 추가되었는지 확인합니다). db.grantRolesToUser("admin", [{ role: "backup", db: "admin" } ] )

  2. 마지막으로 mongodump 명령어입니다.비밀번호를 인수로 전달하려고 했을 때 효과가 없었습니다.대신 다음을 수행합니다.

mongodump --username admin --authenticationDatabaseadmin --db yourmongodatabase

그런 다음 암호가 요청되면 암호를 추가합니다.

난 이거면 되는데...

저 같은 경우에는mongodump에서 패스워드가 올바르게 처리되지 않았습니다.해결책은 패스워드 리터럴을 회피하는 것이었습니다.

이것은 동작하지 않았습니다.

mongodump -p my$password -o <output directory>

이 방법은 성공했습니다.

mongodump -p 'my$password' -o <output directory>

signle Quoter around password를 사용합니다.비밀번호에 특수문자를 사용하는 경우.그것으로 당신의 문제가 해결됩니다.다음 명령을 사용합니다.

mongodump -d database_name -u userName -p 'password' --out directory_name

userAdminAnyDatabase는 모든 dbs에서 mongodump를 실행하기에 충분하지 않기 때문에 이 오류가 발생합니다.다음과 같은 기능을 가진 슈퍼 유저가 필요합니다.

userAdminAnyDatabase
readWriteAnyDatabase
clusterAdmin

모든 dbs에서 mongodump를 실행할 수 있는 권한입니다.

또는 '백업' 권한만 있으면 됩니다.

db.grantRolesToUser('username', [{
  role: 'backup',
  db: 'name of ur authentication db'
}])

「 」를하고 있는 는,--uri옵션: 접속 문자열에 파라미터로 추가해야 합니다(사용자가 관리 데이터베이스에 있는 경우).

mongodump --uri="mongodb://user:pass@host1:27017,host2:27017,host3:27017/?replicaSet=rs0"

이하가 됩니다.

mongodump --db=test --uri="mongodb://user:pass@host1:27017,host2:27017,host3:27017/?replicaSet=rs0&authSource=admin"

m에서 할했습니다.Lab에서 데이터베이스 정보를 덤프하려고 할 때도 같은 문제가 있었습니다.를 앓았기 에 일어난 이다.2.x 및 (로컬)3.xm 단위연구실로컬 mongo를 mLab과 같은 메이저버전으로 업그레이드하면 덤프를 할 수 있게 되어 문제가 해결되었습니다.

을 사용하는 m과 수 .Lab을 사용하는 경우 로컬 mongo의 버전이 mLab과 일치하지 않을 수 있습니다.는 mongo를 합니다.v2.x은 mLab mv3.x 명령으로 할 수 하다

mongo --version

새 mongo 버전 설치:

  1. 오래된 로컬 mongo를 삭제합니다(모든 로컬 데이터베이스가 삭제될 수 있습니다).
sudo apt remove mongo-clients mongodb
  1. 패키지 관리 시스템에서 사용하는 공용 키를 가져옵니다.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927
  1. MongoDB 목록 파일을 만듭니다.

    • 우분투 14.04
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  • 우분투 16.04
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  1. MongoDB 패키지 설치
sudo apt-get install -y mongodb-org

참고 자료: https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/

이제 다음 명령을 사용하여 데이터베이스를 덤프할 수 있습니다.

mongodump -h <host>:<port> -d <database-name> -u <user> -p <password> -o <output directory>

언급URL : https://stackoverflow.com/questions/31993168/cant-create-backup-mongodump-with-db-authentication-failed

반응형