致命错误:尝试备份数据库

时间:2016-01-12 16:45:44

标签: php database codeigniter

我收到了致命错误:尝试使用Codeigniter dbutil backup()函数在联机休息服务器上备份数据库时,允许的内存大小为33554432字节(尝试分配91个字节)错误。

这是我的代码:

    $this->load->dbutil();
    $backup =& $this->dbutil->backup(); 
    $this->load->helper('file');
    write_file('./uploads/db/mybackup.gz', $backup);

我无法找出我做错的地方。

2 个答案:

答案 0 :(得分:4)

您需要使用以下命令增加脚本内存:

ini_set('memory_limit', '-1'); 

您需要在文件顶部使用此行。

通过增加 memory_limit ,您的脚本将占用服务器的无限内存。

如果您可以访问 php.ini 文件,则可以从 php.ini 文件增加限制,否则您需要添加此行。

旁注:

如果您认为无限制的内存将在其他区域受影响,则可以将自定义值设置为:

ini_set('memory_limit', '512M');  //increase size as you need

答案 1 :(得分:0)

数据库可能太大了?

“由于PHP可用的执行时间和内存有限,可能无法备份非常大的数据库。如果您的数据库非常大,您可能需要通过命令行直接从SQL服务器进行备份,或者让您的如果您没有root权限,服务器管理员会为您执行此操作。“

http://www.codeigniter.com/user_guide/database/utilities.html

编辑:正如@E_p所述,你的内存不足,但我的回答可能是导致错误的最可能原因......

编辑2:

正如另一个答案中所述,我强烈建议您不要将内存使用量设置为无限ini_set('memory_limit', '-1');,尤其是在共享服务器上时。