用于将数据库还原到另一个空数据库的PHP脚本

时间:2013-08-27 05:35:12

标签: php mysql phpmyadmin php-5.4

这个问题可能看似重复,但是我尝试了所有示例来恢复我的数据库,但似乎没有一个对我有用。 我正在尝试运行一个脚本,将我的备份sql文件还原到新数据库。我试过这些行来恢复我的数据库,但似乎都没有。

     $mysql_host = 'localhost';
     $mysql_username = 'my_username';
     $mysql_password = 'somepassword';
     $db_name = 'test_db';


    $source = 'C:/wamp/www/my_folder/test_db.sql';

    $conn = mysql_connect( $mysql_host, $mysql_username, $mysql_password ) or die('Error connecting to MySQL server: ' . mysql_error());

    mysql_query("CREATE DATABASE $db_name", $conn ) or die('Error connecting to MySQL server: ' . mysql_error());

    restore_my_database( $mysql_host, $mysql_username, $mysql_password, $db_name, $source );

    function restore_my_database( $mysql_host, $mysql_username, $mysql_password,  $db_name, $source ) {

        exec("mysql --opt -h $mysql_host -u $mysql_username -p $mysql_password $db_name < $source");
    }

我还尝试在行

之后的函数restore_my_database中
$command = "mysqldump --opt -h $mysql_host -u $mysql_username -p $mysql_password $db_name > $source";
system($command);

Upto database create,代码工作正常,但恢复不起作用。 任何人都可以帮助我恢复我的数据库的恢复代码。提前致谢

4 个答案:

答案 0 :(得分:2)

您可以通过以下代码实现它,首先从.sql文件获取内容然后执行查询

$source = 'C:/wamp/www/my_folder/test_db.sql';

$conn = mysql_connect( $mysql_host, $mysql_username, $mysql_password ) or die('Error connecting to MySQL server: ' . mysql_error());

mysql_query("CREATE DATABASE $db_name", $conn ) or die('Error connecting to MySQL server: ' . mysql_error());
mysql_select_db($db_name);
$qry = file_get_contents($source);
mysql_query($qry, $conn);

并且还增加了php.ini文件中的最大执行时间,内存限制

答案 1 :(得分:0)

- 你必须创建一个架构:

mysql
mysql> create database [your schema name];
mysql> grant all privileges on [your schema name].* to [your username]@localhost identified by '[your password]';

- 在您的计算机上创建sql dump:

mysqldump [your schema name] > [your schema name].sql

- 并将其导入新数据库:

mysql [your schema name] <   [your schema name].sql;

答案 2 :(得分:0)

由于您使用“phpmyadmin”对其进行标记,请尝试使用phpMyAdmin创建数据库,然后导入.sql文件。

答案 3 :(得分:0)

//recupero il nome del file .sql
$file = "C:/wamp/www/my_folder/test_db.sql";

//definisco il nome del database
$db = 'name_db';

//effettuo la connessione al databse
$conn = mysqli_connect($mysql_host, $mysql_username, $mysql_password) or die('Errore di connessione al server MySQL: ' . mysqli_error());

//seleziono il database
mysqli_select_db($conn,$db);

//leggo il contenuto del file .sql
$qry = file_get_contents($file);

//divido tutte le query presenti nel file .sql
$query = explode(";",$qry);

//conto quante query esistono
$arrlenght = count($query);

//ciclo tutte le query del file
for($i=0;$i<$arrlenght;$i++){
    mysqli_query($conn, $query[$i]);
}