繁体   English   中英

从mysql命令行复制mysql数据库

[英]Copy mysql database from mysql command line

如何复制database1database2从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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM