通过PHP恢复特定表的mysql转储

时间:2014-10-31 18:52:00

标签: php mysql restore

我有一个mysql表转储文件(可以在这里查看:http://pastebin.com/raw.php?i=GQkjrDNz),我想使用它来创建一个表(根据转储文件命名为php_blog_archive)那个sql文件。

问题是我无法访问phpmyadmin,所以我只能通过php命令执行此操作,我已经查看过这样的几个线程以及我到目前为止的代码,

<?php
// Config
$db_user = "username";
$db_pass = "password";

exec("mysql -u $db_user -p $db_pass -h localhost databasename < restoreold.sql ");

?>

但它不起作用,它什么都不做 - 甚至没有显示任何错误。有人可以告诉我如何继续吗?

2 个答案:

答案 0 :(得分:0)

首先,命令必须是:

<?php
// Config
$db_user = "username";
$db_pass = "password";

exec("mysql -u " . $db_user . " -p " . $db_pass . " -h localhost databasename < restoreold.sql "); // Added an space before -h

?>

第二,您是否可以直接创建/编辑/追加文件和exec命令?

答案 1 :(得分:0)

我认为你的密码存在问题。

<?php
// Config
$db_user = "username";
$db_pass = "password";

exec("mysql -u " . $db_user . " -p'" . $db_pass . "' -h localhost databasename < restoreold.sql 2>&1", $output);

echo nl2br($output);

?>

这将以mysql -u username -p'password' -h localhost databasename < restoreold.sql 2>&1

结束

最后一件事是将错误masseges或其他内容回显给HTML。这是通过2>&1$output引用变量完成的,该变量将从nl(新行将以<br />结尾)转换为HTML并进行回显。

希望它有所帮助。