使用PHP exec的MySQL转储工作。但是,无法导入或复制

时间:2013-02-12 17:57:12

标签: php mysql exec

这是有效的:

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 db并重新创建。请注意,第一个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');

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

1 个答案:

答案 0 :(得分:0)

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

  

exec('mysql --user = myusername --password = mypassword --execute =“ drop   数据库new_dbname“');

     

exec('mysql --user = myusername --password = mypassword --execute =“创建   数据库new_dbname“');

     

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