0

这是有效的:

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');

所以我试图转储然后导入。有任何想法吗?

4

1 回答 1

0

在这里回答已经太晚了,但是有一种方法可以使用以下命令克隆数据库。

exec('mysql --user=myusername --password=mypassword --execute="drop database new_dbname"');

exec('mysql --user=myusername --password=mypassword --execute="create database new_dbname"');

exec("mysqldump --events --ignore-table=mysql.events -u $myusername -p'$mypassword' $existing_db_name | mysql -u $myusername -p'$mypassword' -C $new_dbname");

于 2018-09-13T12:59:00.277 回答