【问题标题】:PHP mysqldump issuesPHP mysqldump 问题
【发布时间】:2013-12-08 06:11:56
【问题描述】:

我正在尝试编写一个从网页运行的 PHP mysqldump 脚本,但我遇到了问题; 该脚本看似运行,但是当我转到我为其指定的目录转储数据库时,什么都没有。

这是mysqldump脚本的php文件:

?php
require( "config.php" );
exec(' mysqldump -u [$DB_USERNAME] -p [$DB_PASSWORD] [$DB_NAME] > bzpbackup.sql');
echo ' <html> Database backup complete! Please click the link below to 
download backup. 
<br> 
<form target="http://solismagna.com/dbbackups/bzpbackup.sql type="submit">
Download Backup</form> </html> ';
?>

这个文件叫做 sqldump.php。 config.php 文件存储了我用于 mysqldump 用户名、密码和数据库名称的变量。以前,我将要转储的目录设置为 "home/dbbackups/bzpbackup.sql",但我删除了它,认为它可能是一个不正确的目录。此外,如您所见,我正在尝试在脚本完成后向 index.php 输出一条消息。 This: "bzpbackup.sql'); echo ' 数据库备份完成!请点击以下链接下载备份。 无论脚本是否完成,“下载备份”都会出现。我使用以下代码将其输出到 index.php 页面:

?php $f="sqldump.php";
$data = file_get_contents($f);
echo $data;
?>

这里是 config.php 文件:

<?php
ini_set( "display_errors", true );
date_default_timezone_set( "America/New_York" );

define( "DB_USERNAME", "username" );
define( "DB_PASSWORD", "password" );
define( "DB_NAME", "database" );

require( "sqldump.php" );

/*function handleException( $exception ) {
echo "Sorry, a problem occurred. Please try later.";
error_log( $exception->getMessage() );
}

set_exception_handler( 'handleException' );*/
?>

问题可能是我在配置文件中需要 sqldump.php 吗?

无论如何,当我单击 index.php 文件上的“开始数据库备份”按钮时,我无法判断脚本是否真正工作。

说到这里是那个按钮的代码:

<form action="sqldump.php" type="submit" method="get">
<button type="submit">Start Database Backup</button>
</form>  

mysqldumps 的默认目录是什么,我的备份当前是否存储在那里?另外,我应该在 index.php 的头部包含 config.php 吗?我还希望在脚本完成后出现下载按钮。有人可以告诉我怎么做吗?

抱歉问了这么长的问题。我还是个 PHP 新手。

谢谢! :)

【问题讨论】:

    标签: php html mysqldump


    【解决方案1】:

    再次尝试“home/dbbackups/bzpbackup.sql”位置,但在开头放置一个正斜杠。所以,“/home/dbbackups/bzpbackup.sql”。

    此外,请确保“/home/dbbackups”目录可由任何用户写入,方法是:

    chmod ugo+w /home/dbbackups
    

    【讨论】:

    • 刚试过,我得到了这个错误。我什至 CHMODed dbbackups 到 777,但我得到这个错误:内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。请联系服务器管理员 webmaster@solismagna.com 并告知他们错误发生的时间,以及您可能所做的任何可能导致错误的事情。服务器错误日志中可能提供有关此错误的更多信息。此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。
    • php.net/phpinfo 将显示日志文件的位置。如果您阅读了该日志的结尾(或结尾),您可以看到触发了哪个错误。另外,请确保php.net/manual/en/function.error-reporting.php 已打开。
    • 打开该文件的错误报告,我意外地得到了这些错误的整个页面,但没有别的: 注意:常量 DB_USERNAME 已在 /home/sphefsfa/public_html/cmstest/config.php 中定义在第 6 行 注意:常量 DB_PASSWORD 已经在第 7 行的 /home/sphefsfa/public_html/cmstest/config.php 中定义 注意:常量 DB_HOST 已经在第 8 行的 /home/sphefsfa/public_html/cmstest/config.php 中定义 注意:常量DB_NAME 已在 /home/sphefsfa/public_html/cmstest/config.php 第 9 行定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 2021-03-30
    相关资源
    最近更新 更多