计算机四级辅导:一个MySQL数据备份/恢复的简易方法
发布时间:2010/3/15 14:22:34 来源:城市学习网 编辑:MOON
方法一: ?php/功能:数据备份/恢复文件简易方法以日期为单位,一天一个备份文件,以当天最后备份为准用提交表单的形式进行操作, 其中$_POST[tbl_name]为预备份表名称数组 ...
方法一:
?php/功能:数据备份/恢复文件简易方法以日期为单位,一天一个备份文件,以当天最后备份为准用提交表单的形式进行操作, 其中$_POST["tbl_name"]为预备份表名称数组 $_POST["sqlfile"]为预恢复数据文件的名称 注意:该备份没有结构备份,只有数据备份备份文件格式: `表名称1`}`表名称2`}`表名称3`}...创建时间:2005-02-25E-mail: kingerq AT msn.com想在PHP后台管理直接能够备份数据库,于是想呀想,一直没有什么思路,一开始是考虑用php来访问服务器安装mysql的目录,比如 /usr/local/mysql/data目录,直接把下面对应的文件进行备份,但是出现了问题: 第一、运行php的是apche的用户,比如是nobody,那么它一般是没有权限访问/usr/local/mysql/data目录的 第二、就算能够访问,那么你如何能够把/usr/local/mysql/data目录下的文件拷贝出来呢?因为mysql在运行的时候是不运行访问的,那么nobody用户有权限停止mysql的服务,不可能! 越想越不对劲,没有办法,看能不能从php操作数据库入手,于是就去看了下phpMyadmin和Discuz!的代码,呵呵,于是偷抄了Discuz!的代码,形成了如下备份数据库的方法。(在这里感谢Discuz!的开发者) 备份数据库有两种方式,一种是只备份数据库的结构,一种把是结构和所有的数据都备份出来,当然是第二种方法好啦,不过我为了考虑可能的需求就都作啦。 /备份数据库结构 //函数名称:table2sql函数功能:把表的结构转换成为SQL函数参数:$table: 要进行提取的表名返 回 值:返回提取后的结果,SQL集合函数heiyeluren/function table2sql / 备份数据库结构和所有数据 //函数名称:data2sql函数功能:把表的结构和数据转换成为SQL函数参数:$table: 要进行提取的表名返 回 值:返回提取后的结果,SQL集合函数heiyeluren/function data2sql $tabledump .= ");n"; } $tabledump .= "n"; return $tabledum}/ 具体实现操作 /好,我们既然把代码都写出来了,那么我们如何在具体的程序种去实现备份呢,我们看下面的代码。/ 备份数据库 /// 注意:我们一下的数据库操作采用了phplib的DB类// 定义要保存的数据表、前缀、保存到何处$tables = array; //定义要保存的数据表,一个数组$prefix = ‘us_‘;// 要保存的.sql文件的前缀$saveto = ‘server‘; // 要保存到什么地方,是本地还是服务器上,默认是服务器$back_mode = ‘all‘; // 要保存的方式,是全部备份还是只保存数据库结构$admin = ‘heiyeluren‘; //管理员名称$admin_email = ‘heiyeluren@163.com‘;// 管理员邮箱// 定义数据保存的文件名$local_filename = $prefix.date.‘.sql"‘;if $filename = $prefix.date. create_check_ code.".sql";// 保存在服务器上的文件名// 注意后面的create_check_code函数,这是一个生成随机码的函数,详细可以参考:// http://blog.csdn.net/heiyeshuwu/archive/2005/01/26/268446.aspx// 获取数据库结构和数据内容foreach if }// 如果数据内容不是空就开始保存if) // 保存到本地结束// 保存在服务器 if else } else } else } // 保存到服务器结束}else/ 备份数据库结束 /呵呵,基本上这样就结束了,然后涉及到的一个问题是如何把数据恢复到数据库中,我想这个是