phpMyAdmin 无法导出数据库

Posted

技术标签:

【中文标题】phpMyAdmin 无法导出数据库【英文标题】:phpMyAdmin can't export database 【发布时间】:2013-06-15 04:42:31 【问题描述】:

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

这是错误日志:http://pastebin.com/44N4YcAk

[2013 年 6 月 18 日星期二 21:40:16] [错误] [客户端] PHP 致命错误:在 /usr/share/phpmyadmin/libraries/tcpdf/ 中已用尽 16777216 字节的允许内存大小(尝试分配 491520 字节) tcpdf.php

【问题讨论】:

你用的是VPS,为什么要用phpmyadmin备份?| 从命令行运行 mysqldump。 错误来自tcpdf.php。您要导出为 PDF 吗? 【参考方案1】:

你不应该为此使用 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 自动化

【讨论】:

【参考方案2】:

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

How to increase memory size for phpmyadmin

【讨论】:

您是否增加了内存并重新启动了您的 apache 服务器?还是您尝试了命令行解决方案? 我增加内存并重启【参考方案3】:

底部写着

 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 文件中

【讨论】:

或者数据库太大。他可能需要分块导出,一次导出几张表。 有 4k 行 - 这没什么【参考方案4】:

执行此命令:

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;

在这两种情况下,您的导出功能都会正常工作

【讨论】:

【参考方案5】:

提示:

将mysql引擎改为InnoDB而不是MyISAM,主要目的是清理表或删除表后申请存储。

【讨论】:

以上是关于phpMyAdmin 无法导出数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法导入从 phpMyAdmin 导出的 sql 文件

使用 PHP/PHPMyAdmin 导出

如何导出mysql数据

从 PHPMYADMIN 导出和导入数据

通过 phpMyAdmin 将数据库转储导出到 MS SQL

使用 phpMyAdmin 从 mySQL 自动导出 CSV