这个问题可能看似重复,但是我尝试了所有示例来恢复我的数据库,但似乎没有一个对我有用。 我正在尝试运行一个脚本,将我的备份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,代码工作正常,但恢复不起作用。 任何人都可以帮助我恢复我的数据库的恢复代码。提前致谢
答案 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]);
}