2013-06-18 159 views
0

我有一個VPS機,我phpMyAdmin安裝,並插入到數據庫中可是現在,我希望做一個備份和導出數據庫,它說:phpMyAdmin的不能導出數據庫

Error code 500, Internal Server Error

這裏error.log中:http://pastebin.com/44N4YcAk

[Tue Jun 18 21:40:16 2013] [error] [client] PHP Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 491520 bytes) in /usr/share/phpmyadmin/libraries/tcpdf/tcpdf.php

+1

您使用VPS,你爲什麼要與phpMyAdmin備份?| – exussum

+0

從命令行運行mysqldump。 – 2013-06-18 20:21:12

+0

錯誤來自tcpdf.php。您是否嘗試導出爲PDF? –

回答

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 

將備份保存在受密碼保護的7zip文件中7zpass

+0

或者數據庫太大。他可能需要一次將其輸出爲大塊,幾個表格。 –

+0

那裏有4K行 - 那是什麼 – exussum

+0

我又再次做到這一點,同樣的錯誤,我不知道爲什麼笑 – user2444244

1

通過這篇文章,它展示瞭如何增加內存;或者只是使用命令行來導入:

How to increase memory size for phpmyadmin

+0

我這樣做,和同樣的錯誤,我不知道爲什麼笑 – user2444244

+0

你增加內存並重新啓動Apache服務器?或者你嘗試過命令行解決方案? –

+0

我增加了momory並重新啓動 – user2444244

9

你不應該使用phpMyAdmin對於這一點,你應該使用mysqldump。從一個PHP腳本的命令行其

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

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

這是很容易用一個cronjob自動化