2011-05-06 122 views
1

我試圖恢復MySQL的轉儲還原創建方式如下:MySQL數據庫使用PHP

$file = '/path/to/file.sql'; 
exec('mysqldump -u '.DB_USER.' -p'.DB_PASS.' '.DB_NAME.' > '.$file); 

上述產生預期轉儲,然後恢復我試圖使用以下命令:

$file = '/path/to/file.sql'; 
exec('mysql -u '.DB_USER.' -p'.DB_PASS.' '.DB_NAME.' < '.$file); 

但由於某些原因,它不會做任何事情。

請注意,常量包含相關的數據庫連接參數。

任何想法我做錯了什麼?而不是重定向

+0

嘗試mysql的完整路徑,比如'/ usr/bin/mysql'或其他任何東西,並在exec調用中添加一些錯誤檢查。調試信息? – sdolgy 2011-05-06 18:22:23

+0

您是否測試了PHP在MySQL客戶端連接中生成的字符串以確保它能夠正常工作? – 2011-05-06 18:25:03

回答

1

使用mysql -e 'source $file'也許試試這個。

0
$file = realpath('file.sql'); 
exec('mysqldump -u ' . DB_USER . ' -p' . DB_PASS . ' ' . DB_NAME . ' > ' . $file);