1

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

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

1 回答 1

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

因此,您要调用的代码mysqldump可能如下所示

$pwd = '*******';
$cmd = "/usr/local/mysql/bin/mysqldump -hlocalhost -uroot -p'$pwd' -A> db/ilamdb.sql 2>&1";
shell_exec($cmd);
于 2013-03-10T04:43:45.473 回答