12

データベースからバックアップを作成したいのですが、空のファイルしか取得できません。

include('config.php');

$command = "mysqldump --opt -h ".$_host." -u ".$_user." -p ".$_pass." ".$_db." > test.sql";
exec($command);

echo "<br />".$command;

test.sql は、.php ファイルがある場所に作成されます。

編集:

ノート!XAMPP WINDOWS を使用しています。

解決:

Windows Web サーバー (XAMPP) を使用しているため、パスを指定する必要がありました。

$command = 'd:\xampp\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
  1. -p と pass の間のスペースを削除しました。次のようになります。-pMYPASSWORD
  2. "で置き換え'

Linux ベースの Web サーバーを使用している場合は、mysqldump のパスを指定する必要はないと思います。

乾杯!:-)

4

7 に答える 7

4

これらはパラメータです

-uROOT -pPASSWORD --databases DB --result-file=FILE.SQL

于 2012-08-17T10:51:14.390 に答える
4

これを試してください:

$command = 'd:\xampp\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql 2>&1';

-許可の問題について。

于 2013-10-04T19:42:02.770 に答える
0

これを試して:

$DBUSER="user";
$DBPASSWD="password";
$DATABASE="DBname";

$filename = "backup-" . date("d-m-Y") . ".sql";

$command = '"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump.exe" '.$DATABASE ." -u".$DBUSER ." -p".$DBPASSWD." > your_web_site/$filename";
passthru($command);
  • コンピューターの mysqldump.exe アプリケーションの方向にルートを変更します。
  • コマンド内の " " を尊重します。

次に、ファイルのダウンロードを強制します。

if (file_exists("your_web_site/".$filename)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
readfile("your_web_site/".$filename);
exit;
}

編集: コピーを保持するフォルダーにアクセス許可を与える必要があります。

于 2016-05-26T09:35:07.623 に答える
0

-p とパスワードの間のスペースを削除する必要があります。

--opt最近のバージョンの mysql では必要ありません。

それ以外は、構文は正しいので、-p 修正で機能しない場合は、パラメーターと生成されたコマンドを確認する必要があります。

于 2012-08-17T10:47:47.650 に答える
0

引用符から変数を取り出し、--opt を削除します。

また、ファイル名が一意であることを確認してください

$backupfile = $dbname . date("Y-m-d-H-i-s") . '.sql';

$command = "D:\xampp\mysql\bin\mysqldump -u $_user -p$_pass $_db > $backupfile";

system($command);

于 2013-06-12T17:26:57.537 に答える
0

Macをご利用の方へ

今日は一晩中この問題と戦っていました。ばかげた間違い: ファイルをダンプするディレクトリを chmod する必要があります。

これを実行して問題を修正しました:

chmod -R 777 your_dump_directory/
于 2014-01-25T07:38:23.843 に答える
0

execのマニュアルを見ると、出力は 2 番目の引数である配列になります。それが問題の原因かもしれません。

于 2012-08-17T10:58:34.337 に答える