簡體   English   中英

Mysqldump返回空文件.sql

[英]Mysqldump return empty file .sql

我試圖以這種方式轉儲我的數據庫:

$output = NULL; $command = 'mysqldump -u $dbuser -h localhost -p$password $dbname > dump.sql'; passthru($command, $output);

我也嘗試過這種方式:

$command = 'mysqldump -u $dbuser -h localhost -p$password $dbname > dump.sql';
exec($command);

兩種方式都創建一個空的dump.sql

我哪里錯了? 你能幫助我嗎?

我建議您在使用mysqldump時使用--single-transaction標志。

mysqldump --single-transaction -u$dbuser -hlocalhost -p$password $dbname > dump.sql

話雖如此,我會懷疑是超時(PHP或MySQL)還是內存不足錯誤。

您是如何執行腳本的? 瀏覽器還是CLI?

我不能確切地說,但是如果您使用單引號,則不會用實際值替換php變量。 您應該使用雙引號而不是單引號。

像$ command =“ mysqldump -u $ dbuser -h localhost -p $ password $ dbname> dump.sql”;

在執行之前嘗試打印命令,以確保將值替換為變量。

讓我知道這是否行不通,將為您提供更准確地調試的選項。

請在下面嘗試,讓我知道輸出。

$command = "mysqldump -u $dbuser -h localhost -p$password $dbname > dump.sql 2>&1";
exec($command, $output);
echo '<pre>';print_r($output);exit;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM