使用 PHP 执行 MySQL 备份


定期备份数据库始终是一个好习惯。您可以使用三种方法来备份 MySQL 数据库。

  • 通过 PHP 使用 SQL 命令。
  • 通过 PHP 使用 MySQL 二进制 mysqldump。
  • 使用 phpMyAdmin 用户界面。

通过 PHP 使用 SQL 命令

您可以执行 SQL SELECT 命令来备份任何表。要进行完整的数据库转储,您需要为单独的表编写单独的查询。每个表将存储到单独的文本文件中。

例子

尝试以下使用 SELECT INTO OUTFILE 查询创建表备份的示例 -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
	
   $table_name = "employee";
   $backup_file  = "/tmp/employee.sql";
   $sql = "SELECT * INTO OUTFILE '$backup_file' FROM $table_name";
   
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not take data backup: ' . mysql_error());
   }
   
   echo "Backedup  data successfully\n";
   
   mysql_close($conn);
?>

在某些情况下,您可能需要恢复前段时间备份的数据。要恢复备份,您只需要运行 LOAD DATA INFILE 查询,如下所示 -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
	
   $table_name = "employee";
   $backup_file  = "/tmp/employee.sql";
   $sql = "LOAD DATA INFILE '$backup_file' INTO TABLE $table_name";
   
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not load data : ' . mysql_error());
   }
   echo "Loaded  data successfully\n";
   
   mysql_close($conn);
?>

通过 PHP 使用 MySQL 二进制 mysqldump

MySQL 提供了一种实用程序mysqldump来执行数据库备份。使用此二进制文件,您可以通过单个命令获取完整的数据库转储。

例子

尝试以下示例来获取完整的数据库转储 -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $backup_file = $dbname . date("Y-m-d-H-i-s") . '.gz';
   $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass ". "test_db | gzip > $backup_file";
   
   system($command);
?>

使用 phpMyAdmin 用户界面

如果您有可用的phpMyAdmin用户界面,那么您可以轻松备份数据库。

要使用 phpMyAdmin 备份 MySQL 数据库,请单击 phpMyAdmin 主页上的“导出”链接。选择要备份的数据库,检查相应的 SQL 选项并输入备份文件的名称。

php_and_mysql.htm