想要创建一个脚本来备份整个数据库并下载它

时间:2009-07-08 07:49:11

标签: php mysql content-management-system backup

我已经使用管理部分构建了一个简单的cms。我想创建类似备份系统的东西,它可以备份网站上的信息,还有一个恢复系统,可以恢复所采取的备份。我假设备份是由使用的表生成的SQL文件。

我在这里使用PHP和MySQL - 我知道如何做到这一点?

6 个答案:

答案 0 :(得分:2)

备份的一个简单解决方案:

  • 从php http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html调用mysqldump,并将备份文件保存在方便的位置。
  • 这是一个安全的解决方案,因为你在任何mysql安装上都有mysqldump,这是一种生成标准sql脚本的安全方法
  • 保存整个数据库也是安全的。
  • 小心blob,比如数据库中保存的图像
  • 小心使用utf-8数据

恢复的一个简单解决方案:

从php调用外部应用程序:

http://php.net/manual/en/book.exec.php

答案 1 :(得分:0)

如果是linux / unix,请查看“man pg_dump”。它基本上转储整个数据库(包括所有表和表定义),例如“pg_dump mydb> db.sql”

答案 2 :(得分:0)

创建一个调用mysqldump

的脚本

答案 3 :(得分:0)

它只是为了您自己还是您想将它作为CMS的一项功能?

我建议使用www.mysql.com上的MySQL Administrator来创建备份。它是一个非常有用的工具,可用于从有权访问的外部数据库安排备份。它允许您恢复并选择哪些表。

如果它是CMS的一个功能,那么a)我不确定这是一个很好的计划,b)上面的一个应该这样做!

答案 4 :(得分:0)

对于备份部分,您可以使用现成的解决方案。用加密检查astrails-safe mysql / pgsql / plain_files / subversion备份并上传到S3 / SFTP。

不应该太难添加恢复功能(基本上只是解密,解压缩和管道数据到适当的命令)。对于mysql(没有加密):

zcat -d mysqldump-blog.090820-0000.sql.gz | mysql database_name

答案 5 :(得分:-1)

phpMyAdminSQLBuddy具有导入/导出整个数据库的功能。