phpMyAdmin无法导出数据库

时间:2013-06-18 20:01:29

标签: php mysql database phpmyadmin

我有一台VPS机器,我安装了phpMyAdmin并插入了数据库。但现在当我想进行备份并导出数据库时,它说:

  

Error code 500, Internal Server Error

这是error.log:http://pastebin.com/44N4YcAk

  

[Tue Jun 18 21:40:16 2013] [错误] [客户端] PHP致命错误:/ usr / share / phpmyadmin / libraries / tcpdf /中允许的内存大小为16777216字节耗尽(尝试分配491520字节) tcpdf.php

5 个答案:

答案 0 :(得分:9)

你不应该使用phpmyadmin,你应该使用mysqldump。从命令行中

mysqldump -uMYSQL-USER -h server -pMYSQL-USER database_name > /path-to-export

来自php脚本

$command = "mysqldump -uMYSQL-USER -h server -pMYSQL-USER database_name > /path-to-export/file.sql";
exec($command, $output, $return_var);

使用cronjob很容易实现自动化

答案 1 :(得分:1)

它在底部说

 PHP Fatal error:  Allowed memory size of 16777216 bytes exhausted (tried to allocate 491520 bytes) in /usr/share/phpmyadmin/libraries/tcpdf/tcpdf.php on line 22694, 

您的VPS内存不足或您的PHP设置不允许分配超过16MB的内存。

增加php.ini中的内存或只使用mysqldump

php.ini更改

memory_limit = 64M  

我强烈建议使用mysqldump,虽然这里是我的备份脚本的摘录

#!/bin/bash
time=`date +%Y-%m-%d_%H-%M-%S`
mysqldump -u mysqluser -pmysqlpassword --all-databases | 7za a -si database/backup-${time}.sql.7z -p7zpass

将备份保存在受密码7zpass

保护的7zip文件中

答案 2 :(得分:1)

通过这篇文章,它展示了如何增加内存;或者只使用命令行导入:

How to increase memory size for phpmyadmin

答案 3 :(得分:0)

执行以下命令:

nano /usr/share/phpmyadmin/export.php

按ctrl + w并找到:

// now export the triggers (needs to be done after the data because

此命令在文件中使用两次后,您会看到嵌套的if,因此在嵌套的if中更改:

break 2;

break;

在这两种情况下,导出功能都可以正常工作

答案 4 :(得分:0)

提示:

将mysql引擎更改为InnoDB而不是MyISAM,主要目的是在清理表或删除表后声明存储空间。