php
  • mysql
  • exec
  • mysqldump
  • 2016-01-08 54 views 1 likes 
    1

    我已經過了幾個帖子,人們已經設法解決他們的問題,但不幸的是我沒有成功。我使用WAMP的窗口和我的PHP文件如下所示在php中使用exec mysqldump返回空文件

    <?php 
        include_once("config.php"); 
        $_user = "username"; 
        $_pass = "password"; 
        $_db = "dbname"; 
        $command = 'C:\wamp\bin\mysql\mysql5.6.17\bin\mysqldump -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql'; 
        exec($command); 
        echo "<br />".$command; 
    ?> 
    

    文件名TEST.SQL創建卻是0字節。我也嘗試將mysqldump更改爲mysqldump.exe,但沒有成功。在此之前,我嘗試着不定義mysqldump的路徑,在這種情況下,過程從未結束。現在該過程立即結束,但文件爲空。

    +0

    您的文件夾是否有權限寫入? – AnkiiG

    +0

    感謝您的回覆。是。我有權在此文件夾中寫入文件。 –

    回答

    0

    我也有同樣的問題,並拉我的頭髮,因爲沒有我找到的解決方案爲我工作。

    最後我試着從cmd運行命令(windows的命令提示符),發現Windows無法找到該命令的路徑。

    無論如何,長話短說,這裏是爲我工作,你可以擺脫的絕對路徑,以mydsqldump命令:在this page

    1. 按照指令到MySQL添加到Windows'路徑。
    2. 重新啓動您的WAMP。如果您打開了cmd窗口,請關閉它。
    3. 可選,如果您要測試新插入的路徑)在Windows搜索中搜索「cmd」,然後輸入「mysqldump」,不帶引號打開cmd窗口。
      如果它返回使用說明如下所示,那麼恭喜你,你的MySQL路徑工作!
    用法:mysqldump的[選項]數據庫[表]
    OR的mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3 ...]
    或mysqldump的[選項] - 全數據庫[OPTIONS]
    有關更多選項,使用mysqldump --help
  • 在代碼中,除去的絕對路徑您的(C:\瓦帕\ BIN \ MySQL的\ MYSQL5。 6.17 \ bin)mysqldump命令,只留下沒有任何路徑的mysqldump。下面是我的什麼作品:

    $command = 'mysqldump --opt --host=YOUR_HOST --password="YOUR_PASSWORD" --user=YOUR_DB_USER --databases YOUR_DB_NAME > PATH_TO_FILE/FILE_NAME.sql';
  • 的代碼替換部分資本用自己的信息

  • 再次運行代碼。

    希望這或多或少有所幫助。
  • 相關問題