【问题标题】:mysqldump generates zero-length filemysqldump 生成零长度文件
【发布时间】:2013-03-10 02:42:10
【问题描述】:

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

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

【问题讨论】:

  • 变量$_db_database是什么?你的变量是$_db,还是$_db_database
  • 您应该将输出捕获为$out = shell_exec() 并检查它。
  • 它只是一个变量,我调用我的数据库
  • 我试过了,但没有任何显示
  • 但我的意思是——变量名是什么?它可能会被 PHP 误解,因为它嵌入在没有被空格包围的字符串中。是$_db 还是$_db_database?您应该将变量包围在{}

标签: php mysql mysqldump


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

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

$pwd = '*******';
$cmd = "/usr/local/mysql/bin/mysqldump -hlocalhost -uroot -p'$pwd' -A> db/ilamdb.sql 2>&1";
shell_exec($cmd);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    相关资源
    最近更新 更多