如何从mysql命令行将database1
复制到database2
?
我知道mysqldump
是一种选择,或者我可以做
drop table if exists table2;
create table table2 like table1;
insert into table2 select * from table1;
但是,我不想为每个表名手动执行此操作。这可能吗?
这里的关键是“来自mysql命令行”
mysql> ...
答案 0 :(得分:5)
首先创建重复数据库:
CREATE DATABASE database2;
确保用户和权限全部到位并且:
mysqldump -u admin -p database1| mysql -u backup -pPassword database2;
您还可以参考以下链接在mysql shell上执行此操作。
http://dev.mysql.com/doc/refman/5.5/en/mysqldump-copying-to-other-server.html
答案 1 :(得分:1)
在存储过程中,循环遍历
的结果SELECT table_name FROM information_schema.tables WHERE table_schema = 'sourceDB';
在每次迭代时,准备并执行动态SQL语句:
-- for each @tableName in the query above
CREATE TABLE targetDB.@tableName LIKE sourceDB.@tableName;
INSERT INTO targetDB.@tableName SELECT * FROM sourceDB.@tableName;
很抱歉,存储过程的MySQL语法是一个严重的问题,我现在懒得写完整个代码。
资源:
答案 2 :(得分:0)
也可以从mysql命令行使用Mysqldump。
使用: system(\!):执行系统shell命令。
<强>查询:强>
system mysqldump -psecret -uroot -hlocalhost test&gt; TEST.SQL
system mysql -psecret -uroot -hlocalhost&lt; TEST.SQL