在本地主机中看不到备份文件
Cannot see backup files in localhost
我正在编写 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);
?>
脚本运行良好。但是当我转到 localhost/backups(我想保存备份的地方)时,我看不到脚本所做的任何备份。请帮我解决这个问题。
实际上你正在尝试的会为你提供数据备份,而不是像 .sql.
这样的逻辑备份。
如果你只想备份数据,那么@Drew 已经为你提供了解决方案,但如果你想以 .sql 格式进行备份,那么使用 dump 方法,这也会很快,你也可以避免锁定。
命令在这里-
mysqldump -u<user> -p<pass> mydb mytable > /path/mybackup.sql
为避免锁定,使用--single-transaction选项-
mysqldump --single-transaction -u<user> -p<pass> mydb mytable > /path/mybackup.sql
我正在编写 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);
?>
脚本运行良好。但是当我转到 localhost/backups(我想保存备份的地方)时,我看不到脚本所做的任何备份。请帮我解决这个问题。
实际上你正在尝试的会为你提供数据备份,而不是像 .sql.
这样的逻辑备份。如果你只想备份数据,那么@Drew 已经为你提供了解决方案,但如果你想以 .sql 格式进行备份,那么使用 dump 方法,这也会很快,你也可以避免锁定。
命令在这里-
mysqldump -u<user> -p<pass> mydb mytable > /path/mybackup.sql
为避免锁定,使用--single-transaction选项-
mysqldump --single-transaction -u<user> -p<pass> mydb mytable > /path/mybackup.sql