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