Я пишу сценарий php, чтобы получить резервную копию базы данных в MySql, и следующий мой сценарий.
<?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);
?>
Скрипт работает очень хорошо. Но когда я захожу в локальный хост / резервные копии (где я хочу сохранить свои резервные копии), я не вижу никаких резервных копий, созданных сценарием. Пожалуйста, помогите мне решить эту проблему.
На самом деле то, что вы пытаетесь предоставить вам резервное копирование данных, но не логическое резервное копирование, как .sql.
Если вам нужно только резервное копирование данных, то @Drew предоставил вам решение, но если вы хотите сделать резервную копию в формате .sql, используйте метод дампа, который также будет быстрым, и вы также можете избежать блокировки.
команда здесь-
mysqldump -u<user> -p<pass> mydb mytable > /path/mybackup.sql
Чтобы избежать блокировки, используйте —single -action option-
mysqldump --single-transaction -u<user> -p<pass> mydb mytable > /path/mybackup.sql
Других решений пока нет …