使用CakePHP或普通PHP将数据库备份到文件

时间:2011-01-20 15:07:27

标签: php mysql cakephp

我编写了一个脚本来将我的数据库转储到一个文件中,但它涉及查询数据库,将结果存储在一个数组中,然后使用fopenfwrite来编写文件。

由于我的数据库非常大,它会尝试分配太多内存并失败。

有没有人知道将数据库备份到SQL文件的简单方法,就像MySQL导出一样,不会占用太多内存?

5 个答案:

答案 0 :(得分:3)

如果您可以在服务器上运行外部程序,则可以尝试mysqldump - 它将指定的数据库转储为文本文件。

示例:

mysqldump -u someuser -p somepassword yourdatabase > /some/path/dump.sql

答案 1 :(得分:1)

是使用mysqldump命令,在PHP中,您可以将其命名为:

shell_exec("mysqldump dbname > /some/path/dump.sql");

答案 2 :(得分:0)

理想的解决方案是使用mysqldump命令行工具,因为这是非常低的内存(特别是如果您通过system / exec调用它等)并且比任何“脚本内”解决方案都高效得多。

答案 3 :(得分:0)

为什么重新发明轮子? mysqldump非常实用。

答案 4 :(得分:0)

我编写了一个cakephp控制台应用程序,您可以使用它来使用cron作业备份数据库,当然也可以手动备份。 https://bitbucket.org/mmahgoub/cakephp-backupme/

只需输入命令cake backup

即可

您可以指定每次迭代返回的行以限制内存使用量

cakephp backup default 1000

但当然需要更多时间。