[英]Copy mysql database from mysql command line
如何复制database1
至database2
从MySQL命令行?
我知道mysqldump
是一个选项,或者我可以做
drop table if exists table2;
create table table2 like table1;
insert into table2 select * from table1;
但是,我不想为每个表名手动执行此操作。 这可能吗?
这里的关键是“来自mysql命令行” mysql> ...
首先创建重复数据库:
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
在存储过程中,循环结果
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语法是一个严重的痛苦,我现在懒得写完整的代码。
资源:
Mysqldump也可以从mysql命令行使用。
使用: system(\\!):执行系统shell命令 。
查询:
system mysqldump -psecret -uroot -hlocalhost test> test.sql
system mysql -psecret -uroot -hlocalhost <test.sql
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.