Php mysqldump生成零长度文件

Php mysqldump生成零长度文件,php,mysql,mysqldump,Php,Mysql,Mysqldump,我正在使用myqldump生成一个零长度文件。我尝试了很多次,但它似乎只输出一个零长度的文件。我不知道为什么。我需要安装什么东西吗 <? shell_exec("mysqldump -hlocalhost -uroot -p -A> db/ilamdb.sql "); echo "complete"; ?> 提供mysqldump的完整路径 为用户提供密码(在您的情况下为root用户)离开-p意味着以交互方式向用户询问密码。如果密码包含以下字符

我正在使用myqldump生成一个零长度文件。我尝试了很多次,但它似乎只输出一个零长度的文件。我不知道为什么。我需要安装什么东西吗

  <?
    shell_exec("mysqldump -hlocalhost  -uroot -p  -A> db/ilamdb.sql ");
    echo "complete";
  ?>

  • 提供mysqldump的完整路径
  • 为用户提供密码(在您的情况下为root用户)离开
    -p
    意味着以交互方式向用户询问密码。
    如果密码包含以下字符之一,则将其转义或加引号。
    *?[<>&;!$
  • 对于良好的度量,请使用
    --无默认值
    选项。在您的情况下可能不需要此选项
  • 最后,将stderr重定向到stdout,并在命令末尾添加
    2>&1
    。这样,如果发生错误,您将在文件中获得用于调试的错误消息,而不仅仅是空文件
  • 因此,调用
    mysqldump
    的代码可能如下所示

    $pwd='********';
    $cmd=“/usr/local/mysql/bin/mysqldump-hlocalhost-uroot-p'$pwd'-A>db/ilamdb.sql 2>&1”;
    壳牌执行官($cmd);
    
  • 提供mysqldump的完整路径
  • 为用户提供密码(在您的情况下为root用户)。离开
    -p
    意味着以交互方式向用户询问密码。
    如果密码包含以下字符之一,请将其转义或加引号。
    *?[<>&!\124;$
  • 对于良好的度量,请使用
    --无默认值
    选项。在您的情况下可能不需要此选项
  • 最后,将stderr重定向到stdout,并在命令末尾添加
    2>&1
    。这样,如果发生错误,您将在文件中获得用于调试的错误消息,而不仅仅是空文件
  • 因此,调用
    mysqldump
    的代码可能如下所示

    $pwd='********';
    $cmd=“/usr/local/mysql/bin/mysqldump-hlocalhost-uroot-p'$pwd'-A>db/ilamdb.sql 2>&1”;
    壳牌执行官($cmd);
    
    什么是变量
    $\u db\u database
    ?您的变量是
    $\u db
    ,还是
    $\u db\u database
    ?您应该将输出捕获为
    $out=shell\u exec()
    并检查它。它只是一个变量,我调用了我的数据库。我尝试了一下,但它没有什么可显示的,但我的观点是-变量名是什么?它可能会被PHP错误解释,因为它嵌入了一个没有空格的字符串中。它是
    $\u db
    还是
    $\u db\u database
    ?您应该将变量括在中ode>{}变量
    $\u db\u database
    是您的变量
    $\u db
    ,还是它是
    $\u db\u database
    ?您应该将输出捕获为
    $out=shell\u exec()
    并检查它。它只是一个变量,我调用了我的数据库。我尝试了一下,但它没有什么可显示的,但我的观点是-变量名是什么?它可能会被PHP错误解释,因为它嵌入了一个没有空格的字符串中。它是
    $\u db
    还是
    $\u db\u database
    ?您应该将变量括在中ode>{}