2011-05-06 94 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);