从mysql命令行复制mysql数据库

时间:2014-07-11 04:39:30

标签: mysql sql

如何从mysql命令行将database1复制到database2

我知道mysqldump是一种选择,或者我可以做

drop table if exists table2; 
create table table2 like table1;
insert into table2 select * from table1;

但是,我不想为每个表名手动执行此操作。这可能吗?

这里的关键是“来自mysql命令行” mysql> ...

3 个答案:

答案 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