如何使用PHP自动备份数据库

如何使用PHP自动备份数据库,第1张

使用mysqldump函数

mysqldump -u username -p dbname table1 table2 ...  >BackupName.sql

dbname参数表示数据库的名称

table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;

BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件。

备份数据库的主要过程:

切换到对应的数据库;

使用show create table  tableName,获得表结构,写到文件中;

然后查询所有的表数据,循环生成相对应sql语句,写到文件中;

试运行生成的sql文件。

我一般用二种方法:

1.SQL文件数据备份;

下载一个Navicat Premium,使用这个软件,正确连接并访问数据库,

点中你想要备份的数据库,按右键使用转存SQL文件,就会出现你要备份的提示框,保存即可;

若要导进则用运行SQL文件,非常方便的导入单个数据库的,但这种只适合于小数据量的数据库(50万条以下);

2.底层备份,但这种备份要求安装是同一版本的mysql才适合,否则会出现未知错误;

直接找到mysql安装目录,找到data文件夹全部拷呗到你想备份的地方即可,还原就拷回来即可。适合大数据量的备份方法!

3.至于楼主硬要用PHP备份数据的话,你可以参考phpadmin和dedecms程序备份数据的方法,但这种执行效率很低的!

备份数据库并下载到本地【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 

?>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9916076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存