문제가있는 것 같습니다. 직원 사용자가 해당 프로그램에 대한 MySQL 데이터베이스를 다운로드하도록 허용 할 수있는보기가 있지만 전혀 작동하지 않습니다. Errno 2] No such file or directory: '/usr/local/src/djcode/c2duo_mms/backup.gz'
이라고하는 오류가 발생합니다.mysql 데이터베이스를 덤프 할 수 없습니다.
내가 왜 오류가 발생하는지 알 수는 없지만 데이터베이스를 제대로 덤프 할 수 없기 때문에 가능성이있는 대답입니다. 파일을 찾을 수 없기 때문에 backup.gz를 찾을 수 없습니다. 파일을 덤프해야하는 단계가 작동하지 않습니다.
views.py
@login_required
def dbbackup(request):
if not (request.user.is_authenticated() and request.user.is_staff):
raise http.Http404
os.popen3("mysqldump -u *username* -p*password* *database* > /usr/local/src/djcode/c2duo_mms/backup.sql")
os.popen3("gzip -c /usr/local/src/djcode/c2duo_mms/backup.sql > /usr/local/src/djcode/c2duo_mms/backup.gz"
dataf = open('/usr/local/src/djcode/c2duo_mms/backup.gz', 'r')
return HttpResponse(dataf.read(), mimetype='application/x-gzip')
편집 : 난 작은 파이썬 스크립트를 실행 노력했다. 이제 다음 python 파일이 작동합니다 (c2duo_mms 디렉토리에 backup.gz라는 파일이 저장됩니다). 그렇다면 왜 내 views.py 파일에서 동일한 작업을 수행 할 수 없습니까?
#!/usr/bin/env python
import os
os.popen3("mysqldump -u *username* -p*password* *database* > /usr/local/src/djcode/c2duo_mms/backup.sql")
os.popen3("gzip -c /usr/local/src/djcode/c2duo_mms/backup.sql > /usr/local/src/djcode/c2duo_mms/backup.gz")
이 난 단지 추측을하고 코멘트를 왜, 그 디렉토리에 쓰기 위해 필요한 권한을 가지고로 확인 사용자 장고가 실행되어 있는지 확인합니다. mysqldump와 gzip의 결과도 오류를 확인하십시오. –
명령을 수동으로 실행하여 작동하는지 확인해 보셨습니까? –
@Mike Ramirez : 권한은 아주 훌륭합니다. mysqldump와 gzip의 결과물도 잘 보입니다. 그것은 데이터베이스를 덤프하지 않기 때문에 문제를 일으키는이 행일 수 있습니다. 'os.popen3 ("mysqldump --add-drop-table -u"+ settings.DATABASE_USER + "-p"+ settings.DATABASE_PASSWORD + ""+ settings.DATABASE_NAME + "> backup.sql") os.popen3 "gzip -c backup.sql> backup.gz") ' – Shehzad009