版本:
django:2.1.7
python:3.7
mysql:5.7.25
今天在用django做mysql備份和恢復的時候,備份沒問題,恢復時出現如下錯誤提示:
The request's session was deleted before the request completed. The user may have logged out in a concurrent request, for example.
恢復的命令如下:
recoverycmd = "mysql -u" +DB_USER + " -p"+DB_USER_PASSWD+" " +DB_NAME+" < "+sql_file os.system(recoverycmd)
因為我是在二級頁面中選擇備份的腳本文件,一開始以為os.system是異步執行的,導致二級頁面結束跳轉到一級頁面了,一想又不對,那也頂多提前跳出完成提示,不會打斷恢復啊。
所有肯定是被什么打斷了,然后測試了一下,發現每次錯誤時,登錄都會退出。原來,函數前加了下面的語句:
@login_required(login_url='/login')
導致了恢復過程中,數據庫連接已經斷開,驗證用戶登錄,導致驗證失敗,恢復過程被中斷出現異常。
結論:於是,把這個語句刪除,mysql恢復順利進行,但是數據庫連接還是會斷開一次,重新登錄下就好了。