2

データベースをダンプしようとしました:

<?php
$dbhost = "localhost";
$dbuser = "XXXX";
$dbpass = "XXXXXXXX";
$dbname = 'testdb';

$list = shell_exec ("C:\wamp\bin\mysql\mysql5.1.33\bin\mysqldump.exe $dbname  --user=$dbuser--password=$dbpass > dumpfile.sql");
?>

指定された mysqldump.exe へのフル パスを試すか、単に mysqldump を使用してみましたが、それでも 0kb の dumpfile.sql が返されます

詳細: プログラミング言語: PHP データベース: MySql 5.XX OS(サーバー): Windows Server 2003. (現在、Windows Vista マシンでテスト中)

EDIT @ジェレミー・ヘスロップ:

私は試した:

shell_exec("C:\wamp\bin\mysql\mysql5.1.33\bin\mysqldump.exe --opt -h $dbhost -u$dbuser -p$dbpass $dbname > test.sql");

セーフモード = オフ

まだ運がありません。

4

4 に答える 4

2

私をクレイジーと呼んでください、しかしあなたはあなたのパス名のそれらのバックスラッシュをエスケープする必要はありませんか?コマンドが失敗したと思いますが、エラーはstderrにあるため、何も書き込まれません。

于 2010-01-14T03:33:29.133 に答える
1

「c:\wamp\bin\mysql\mysql5.1.36\bin>mysqldump -u root -p zencartdb > zencartdb.sql」である必要があります。

パスワードを要求します。ルートにパスワードを指定した場合は入力するか、単にEnterキーを押します。これでバックアップが正常に行われます。Windows Vista でもテストしました。

于 2010-12-22T11:43:15.483 に答える
0

私はこのように試しました $result = system ("C:\wamp\mysql\bin\mysql.exe -u $username -p $password $dbname < $pathtomysqlfile"); 正常に実行された後、バックアップが復元されました。

于 2010-05-29T05:02:42.933 に答える
0

私が間違っていなければ、データベース名は次のように --user と --password の後に呼び出しの最後にあるはずです:

$list = shell_exec ("C:\wamp\bin\mysql\mysql5.1.33\bin\mysqldump.exe --user=$dbhost --password=$dbpass $dbname > dumpfile.sql");

それ以外の場合は、他に注意すべき点がいくつかあります。PHP を実行するユーザーに、そのディレクトリへの書き込み権限があることを確認してください。また、問題が発生する可能性があるため、php.ini に safe_mode = off があることを確認してください。幸運を!

于 2010-01-14T03:27:02.420 に答える