3

这个问题可能看起来是重复的,但是我尝试了所有示例来恢复我的数据库,但似乎没有一个对我有用。我正在尝试运行一个脚本,将我的备份 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);

直到数据库创建,代码工作正常,但恢复不起作用。任何人都可以帮助我使用 php 恢复代码来恢复我的数据库。提前致谢

4

4 回答 4

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 文件中的最大执行时间、内存限制

于 2013-08-27T05:55:49.697 回答
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 转储:

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

-- 并将其导入新数据库:

mysql [your schema name] <   [your schema name].sql;
于 2013-08-27T05:39:11.340 回答
0

由于您使用“phpmyadmin”标记此内容,因此请尝试使用 phpMyAdmin 创建您的数据库,然后导入您的 .sql 文件。

于 2013-08-27T14:23:25.517 回答
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]);
}
于 2017-01-24T11:53:12.253 回答