--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에서는 다음 절차가 도움이 되었습니다.
- admin 사용자 이름과 pw가 올바른지 확인합니다.mongo 쉘을 사용하여 이 작업을 수행할 수 있습니다.
몽고
admin db.authpasswordadmin", "your password" 사용)
1이 반환되면 비밀번호는 올바른 것입니다.
그런 다음 "백업" 역할을 관리자에게 추가합니다(또는 이 역할이 이미 추가되었는지 확인합니다). db.grantRolesToUser("admin", [{ role: "backup", db: "admin" } ] )
마지막으로 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.x
m 단위연구실로컬 mongo를 mLab과 같은 메이저버전으로 업그레이드하면 덤프를 할 수 있게 되어 문제가 해결되었습니다.
을 사용하는 m과 수 .Lab을 사용하는 경우 로컬 mongo의 버전이 mLab과 일치하지 않을 수 있습니다.는 mongo를 합니다.v2.x
은 mLab mv3.x
명령으로 할 수 하다
mongo --version
새 mongo 버전 설치:
- 오래된 로컬 mongo를 삭제합니다(모든 로컬 데이터베이스가 삭제될 수 있습니다).
sudo apt remove mongo-clients mongodb
- 패키지 관리 시스템에서 사용하는 공용 키를 가져옵니다.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927
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
- 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
'prosource' 카테고리의 다른 글
ng-repeat 함수에 의해 반환된 아이템을 루프하려면 어떻게 해야 합니까? (0) | 2023.02.27 |
---|---|
Promise의 종류를 개봉하는 방법 (0) | 2023.02.27 |
JSON 개체를 JavaScript 배열로 변환하는 방법 (0) | 2023.02.27 |
AngularJS는 하위 컨트롤러에서 상위 범위에 액세스합니다. (0) | 2023.02.27 |
woocommerce에서 제품 캐터고리 축소판 그림으로 자른 부분을 제거하려면 어떻게 해야 합니까? (0) | 2023.02.27 |