使用OUTFILE命令将mysql数据库导出为.sql格式

时间:2015-05-14 12:06:35

标签: php mysql

这里我想将数据库导出为.sql格式。我尝试了SELECT * INTO OUTFILE --- FROM ---命令,但它只返回记录而不是整个表结构。 代码是

<?php 
//include("db.php");

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
mysql_select_db('ganga_hms');
$table_name = "accountant";
$backup_file  = "C:/xampp/htdocs/FinalHMS/accountant.sql";
$sql = "SELECT * INTO OUTFILE '$backup_file' FROM $table_name";

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

但是我想用它的结构导出表。 并且还建议我如何使用php导出整个数据库。

2 个答案:

答案 0 :(得分:0)

要转储数据库,您需要&#34; mysqldump&#34;工具,但如果在服务器上没有此工具并且无法安装它,您需要一个在所有表上运行的复杂脚本,并收集表结构和数据,如下所示:http://davidwalsh.name/backup-mysql-database-php

答案 1 :(得分:0)

有几个问题。 OUTFILE命令将把所选列作为带分隔符的分隔数据吐出,以后可以与INFILE命令一起使用以再次导入数据。 文件扩展名&#34; * .sql&#34;通常是指一个不是你正在做的SQLDUMP。使用OUTFILE / INFILE通常会生成一个文本文件( .txt)。*

如果您真的想要进行表/数据库备份,则需要使用mySQL的内置工具将表及其数据转储到包含drop命令的文件中, table(重新创建),以及一系列用于恢复数据的insert命令 请参阅:https://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

如果你试图以程序方式进行,那么重新发明轮子将会有很多工作。您可以使用众多shell中的一个来编写数据库及其表的备份脚本。 请参阅:http://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/

希望这有帮助!

相关问题