2015-08-19 2 views
0

Я пишу php-скрипт, чтобы получить резервную копию базы данных в MySql, а следующий - мой скрипт.Не удается просмотреть файлы резервных копий в localhost

<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = ''; 
$d= date('d.m.y_H.i'); 
$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
$table_name = "redcap_data"; 
$backup_file = "backups/$d.sql"; 
$sql = "SELECT * FROM $table_name INTO OUTFILE '$backup_file'"; 

mysql_select_db('test2'); 
$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not take data backup: ' . mysql_error()); 
} 
echo "Backedup data successfully\n"; 
mysql_close($conn); 
?> 

Скрипт работает очень хорошо. Но когда я перехожу к localhost/backups (где я хочу сохранить свои резервные копии), я не вижу никаких резервных копий, созданных скриптом. Пожалуйста, помогите мне решить эту проблему.

+0

Включить отчеты об ошибках, используя error_reporting (E_ALL); http://php.net/manual/en/function.error-reporting.php –

ответ

0

Фактически, что вы пытаетесь предоставить вам резервное копирование данных, но не логическое резервное копирование, например .sql.

Если вы хотите только резервное копирование данных, то @Drew предоставил вам решение, но если вы хотите сделать резервную копию в формате .sql, используйте метод дампа, который также будет быстрым, и вы также можете избежать блокировки. Команда

является здесь-

mysqldump -u<user> -p<pass> mydb mytable > /path/mybackup.sql 

Чтобы избежать блокировки, использовать --single-транзакцию опцию-

mysqldump --single-transaction -u<user> -p<pass> mydb mytable > /path/mybackup.sql