2012-04-06 21 views

回答

2

我終於得到了解決,這裏是我的代碼:

<?php 
$username = "abc"; 
$password = "xyz"; 
$hostname = "domain.com"; 
$database = "test_db"; 
$username =escapeshellcmd($username); 
$password =escapeshellcmd($password); 
$hostname =escapeshellcmd($hostname); 
$database =escapeshellcmd($database); 
$backupFile='url'.date("Y-m-d-H-i-s").$database.'.sql.tgz'; 

$command = "mysqldump -u$username -p$password -h$hostname $database wp_posts > $backupFile"; 
system($command, $result); 
echo $result; 
?> 

日Thnx的支持,真的很感激。

+0

你使用tgz文件擴展名的原因是什麼?輸出似乎不是一個tgz文件給我,只是一個普通的文本.sql文件。 – liquorvicar 2012-04-09 09:47:03

0

如果用戶有權限試試這個:

mysqldump -u$dbuser -p$dbpass $dbname wp_posts > table1.sql 

指定的參數(這是用戶,哪個是密碼)

3

您需要的選項開關添加到您的命令,看mysqldump manual,這樣

$r="mysqldump -u $dbuser -p $dbpass $dbname wp_posts > table1.sql"; 
+0

在上面的腳本中是否需要任何主機變量? – 2012-04-06 11:44:56

+0

@ jassi9911我不相信你需要它,它會默認爲localhost:http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_host但是如果你需要指定它無法通過本地主機連接 – liquorvicar 2012-04-06 11:53:23

0

我認爲這是

mysqldump -u $dbuser -p $dbpass $dbname wp_posts 

Apache用戶需要有寫table1.sql權限和還執行mysqldump命令。如果在共享主機上,這是可疑的。

相關問題