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

问题描述 投票:0回答:1

这是有效的:

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

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

php mysql exec
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”);

© www.soinside.com 2019 - 2024. All rights reserved.