这是有效的:
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 文件是使用实时数据库中的查询创建的,在正确的位置,开发数据库被删除并重新创建。请注意,第一个 exec 仅适用于--single-transaction
. 但是下面的最后一步不起作用。它创建了第一个表,没有数据,也没有其他表。我已经尝试过使用和不使用--single-transaction
.
exec('mysql --user=myusername --password=mypassword --host=localhost mydevdb < /home/path/public_html/a.sql');
我真正想要的是通过 PHP 在同一个 MYSQL 实例中将一个数据库克隆到另一个数据库。这也不起作用:
exec('mysqldump --user=myusername --password=mypassword --host=localhost mydb | mysql --user=myusername --password=mypassword --host=localhost mydevdb');
所以我试图转储然后导入。有任何想法吗?