这是有效的:
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');
所以我试图转储然后导入。有什么想法吗?
答案 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“);