重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用mysqldump函数
10年积累的成都网站制作、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有东台免费网站建设让你可以放心的选择与我们合作。
mysqldump -u username -p dbname table1 table2 ... BackupName.sql
dbname参数表示数据库的名称
table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件。
备份数据库的主要过程:
切换到对应的数据库;
使用show create table tableName,获得表结构,写到文件中;
然后查询所有的表数据,循环生成相对应sql语句,写到文件中;
试运行生成的sql文件。
1、如果服务器允许mysqldump 并且没有禁止PHP的shell_exec()这个函数的话
直接在PHP里面执行mysqldump就可以了。
2、通过mysql_query('show tables')的返回值遍历每个表,循环对每个表使用查询语句
select * into outfile '路径/文件名' from 表名
缺点是这样得到的是纯数据,恢复数据的时候你需要额外再写脚本
3、同样通过show tables返回表名,遍历每个表,通过select 语句查询,然后逐条结果处理,比如手工添加drop table 和create table 以及insert into等等,然后再写入文件。这样得到的备份数据是比较接近mysqldump的结果的,各种工具都可以用来恢复数据。缺点是如果数据库太大的话,效率不好说
备份数据库并下载到本地【db_backup.php】
?php
// 设置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
// 所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
// 获取当前页面文件路径,SQL文件就导出到此文件夹内
$tmpFile = (dirname(__FILE__))."\\".$filename;
// 用MySQLDump命令导出数据库
exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname ".$tmpFile);
$file = fopen($tmpFile, "r"); // 打开文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
?