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. 2>&1そして最後に、コマンドの最後に追加するstdoutにstderrをリダイレクトします。そうすれば、エラーが発生した場合に空のファイルではなく、デバッグ目的のエラーメッセージがファイルに表示されます。

したがって、呼び出すコード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 に答える