mysqldump を実行するための権限の問題
PHP ページのボタンをクリックしてデータベース全体をバックアップするように計画してください
$tmpname= "wholesystem.sql ";
unlink($setupdirection. "/tmp/$tmpname "; );
$command= "mysqldump --opt --default-character-set=latin1 -u $dbusername -p " $dbnames > ".$setupdirection " ;
system($command);
download($setupdirection. "/tmp/ ",$tmpname, $tmpname);
$command によって出力される内容は、mysql のインストール パスに入ります。コマンド ライン bin、実行は成功しました。 !
しかし、上記のコードでは、出力は常に空の SQL ファイルになります。
その理由は、mysqldump が内部コマンドではなくコマンド ラインで直接実行されるためであることはわかっています。これは、ファイルの bin で実行する必要があります。 mysql インストール パス
mysql インストール パスを保存する必要がありますか?今後システムを移植するのが面倒です
他に$commandを実行させる方法はありますか?
-----解決策--------------------------------
システムの移植を検討しているので、完全なパスを指定する必要があります。異なるシステムや異なるインストールでは、宛先ディレクトリも含めてコマンドが必ず異なるパスに配置されます。
show create table と select into outfile の使用を検討してから、load data infile を使用することをお勧めします。
------解決策---------
上記の文の意味がわかりません。
なぜ複数回実行する必要があるのですか?
複数のデータベースで?
mysqldump -user -ppass -h hostname databasename tablename1 tablename2 ...
この方法で複数のデータベースをバックアップできます。