Hye,我是PHP新手,尝试使用php脚本使用mysqldump。
我已经尝试使用命令和转储过程是成功的。
情况是,当我尝试使用本地计算机进行转储时,转储已成功。
但是当代码传输到服务器时,mysqldump不起作用。我已经尝试了几乎与mysqldump主题相关的解决方案,但仍然无效。我希望有人能指导我。 TQ使用PHP脚本:为什么mysqldump不会转储sql文件?
<?php
/*-----------------------------------------------
MYSQLDUMP FOR SERVER
------------------------------------------*/
$dbhost = "*****";
$dbuser = "*****";
$dbpass = "*****";
$dbname = "*****";
//set date today
$today=date("d-m-Y");
//set file name
$filename = "leave_".$today.".sql";
//MYSQLDUMP
//For Server
$command = sprintf("/usr/bin/mysqldump --opt -h%s -u%s -p%s %s >/var/www/html/leave/leave/backup/%s",
//for local
//$command = sprintf("c:\AppServ\MySQL\bin\mysqldump --opt -h%s -u%s -p%s %s > %s",
$dbhost,
$dbuser,
$dbpass,
$dbname,
$filename
);
system($command);
/*-------------------------------------------------------------
TO SAVE FILE SQL INTO LOCAL
---------------------------------------------------------------*/
$file = "leave_".$today.".sql";
if(!$file)
{
// File doesn't exist, output error
die('File not found');
}
else
{
// Set headers to ask user where to save file.
header('Pragma: anytextexeptno-cache', true);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: text/plain");
header("Content-Disposition: attachment; filename=$file");
// Read the file from disk
readfile($file);
}
?>
你有任何错误或任何东西?你为什么想要做一个mysqldump?,你知道为了做到这一点,你需要很多权限才能在服务器上打开? – Saikios 2014-11-05 04:53:29
检查系统命令是否可以从php执行的权限。许多时候,系统和执行命令不能在PHP文件中解决权限问题。 – WisdmLabs 2014-11-05 04:55:31
@Saikios没有错误,它根本就没有转储文件。我试过echo $命令,仍然没有错误。对于你的第二个问题,我从我的主管得到了使用php脚本备份数据库的任务。所以我已经试过mysqldump和查询,唯一的成功是mysqldump,两者都在本地运行。当脚本传输到服务器时会发生问题,当然我也已经更改了用户名和密码。 – 2014-11-05 05:00:24