标签:mysqldump hosting mysql php
我正在使用1and1建议的确切代码通过mysqldump备份MySQL数据库(http://faq.1and1.co.uk/archive/43.html)
$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).
任何帮助表示赞赏-这似乎是一个愚蠢的修复.
解决方法:
如果您是通过cron作业执行此操作,则DOCUMENT_ROOT将不存在. Web服务器有效地设置了DOCUMENT_ROOT和其他$_SERVER变量(请参见the $_SERVER manual page),并且如果直接从cron运行脚本,则不涉及Web服务器.参见this earlier, similar question.
尝试设置相对于PHP脚本位置的备份目录的路径.例如,如果您的脚本位于… / your_folder / scripts / backup_script.php中,而您(预先创建的)备份目录为… / your_folder / backup /,则
$backup_dir = dirname(__FILE__) . '/../backup';
…然后使用$backup_dir代替getenv(‘DOCUMENT_ROOT’).
看起来您的主机说明是正确的,但是仅当从Web服务器而不是从命令行运行脚本时才如此.
标签:mysqldump,hosting,mysql,php 来源: https://codeday.me/bug/20191102/1994211.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。