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 -udbuser -p dbpass ". "test_db | gzip>backup_file";
system($command);
?>
使用 phpMyAdmin 用户界面
如果您有 phpMyAdmin 用户界面可用,那么可以很容易地备份数据库。
要使用 phpMyAdmin 备份 MySQL 数据库,请点击 phpMyAdmin 主页上的”导出”链接。选择您希望备份的数据库,选中适当的 SQL 选项,并输入备份文件的名称。