定期备份数据库始终是一种很好的做法。有三种方法可用于备份 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('无法连接: ' . 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('无法进行数据备份: ' . mysql_error());
}
echo "成功备份数据\n";
mysql_close($conn);
?>
要恢复备份,您只需运行像这样的 LOAD DATA INFILE 查询 -
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('无法连接: ' . 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('无法恢复数据: ' . mysql_error());
}
echo "已成功恢复数据\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 选项并输入备份文件的名称。