長さゼロのファイルを生成するmyqldumpを使用しています。何度も試しましたが、長さゼロのファイルしか出力されていないようです。どうしてか分かりません。何かをインストールする必要がありますか?
<?
shell_exec("mysqldump -hlocalhost -uroot -p -A> db/ilamdb.sql ");
echo "complete";
?>
-p
ということは、ユーザーに対話的にパスワードを要求することを意味します。 次のいずれかの文字が含まれている場合は、パスワードをエスケープするか、引用符で囲んでください* ? [ < > & ; ! | $
--no-defaults
オプションを使用してください。あなたの場合、これは必要ないかもしれません。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);