定期备份你的数据库总是一种好的做法。有三种方法可以使用备份你的 MySQL 数据库。

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

通过 PHP 使用 SQL 命令

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

试试以下的例子使用 SELECT INTO OUTFILE 查询用于创建表的备份:

$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);

可能存在实例,当你需要恢复数据备份的前一段时间。恢复备份你只需要运行数据加载 INFILE 查询如下:

$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);

使用 MySQL 通过 PHP 二进制 mysqldump

MySQL 提供一个实用程序,mysqldump 执行数据库备份。使用这种二进制您可以在一个命令得到完整的数据库转储。

下面的例子尝试把你完整的数据库转储:

$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 用户界面可用,它很容易为你备份你的数据库。备份您的 MySQL 数据库使用 phpMyAdmin 点击 phpMyAdmin 主页上的“出口”链接。您希望备份数据库,检查适当的 SQL 选项和输入备份文件的名称。