我使用的1and1提出了通過mysqldump的備份的MySQL DB中的確切的代碼(http://faq.1and1.co.uk/archive/43 .html)mysqldump的:上得了寫錯誤號32(的1and1共享主機),爲的crontab
$host= 'xxxx';
$user= 'xxxx';
$pass= 'xxxx';
$db= 'xxxx';
system(sprintf(
'mysqldump --opt -h%s -u%s -p%s %s | gzip > %s/backup/' . time() . '.sql.gz',
$host,
$user,
$pass,
$db,
getenv('DOCUMENT_ROOT')
));
已將所有權限更改爲777以進行測試。仍然沒有運氣。繼續得到錯誤(寫入時錯誤32)。
任何幫助表示讚賞 - 這看起來像一個愚蠢的修復。
這使得錯誤更有意義:errno 32是「斷開的管道」,這意味着gzip在mysqldump完成輸出之前退出。 gzip因爲無法寫入輸出文件而摔倒,聽起來像是一個好罪魁禍首。 – Charles 2011-03-21 16:28:26
@Charles確實。在DOCUMENT_ROOT爲空的情況下,gzip將嘗試寫入'/ backup/...',您非常希望普通用戶無權執行:) – 2011-03-21 16:32:18
非常感謝 - 此工作! – psarid 2011-03-22 15:22:07