これは機能しています:
exec('mysqldump --single-transaction --user=myusername --password=mypassword --host=localhost mydb > /home/path/public_html/a.sql');
exec('mysql --user=myusername --password=mypassword --execute="drop database mydevdb;"');
exec('mysql --user=myusername --password=mypassword --execute="create database mydevdb;"');
ライブ データベースからのクエリを含む SQL ファイルが作成され、適切な場所に dev データベースが削除され、再作成されます。最初の exec は でのみ機能することに注意してください--single-transaction
。しかし、以下の最後のステップは機能していません。最初のテーブルをデータなしで作成し、他のテーブルは作成しません。ありとなしで試してみました--single-transaction
。
exec('mysql --user=myusername --password=mypassword --host=localhost mydevdb < /home/path/public_html/a.sql');
私が本当に望んでいるのは、PHP を介して同じ MYSQL インスタンス内で 1 つのデータベースを別のデータベースに複製することです。これも機能しません:
exec('mysqldump --user=myusername --password=mypassword --host=localhost mydb | mysql --user=myusername --password=mypassword --host=localhost mydevdb');
だから私はダンプしてからインポートしようとしています。何か案は?