我想使用 bash 脚本将数据库中特定表中的行插入到另一个数据库中。这两个数据库位于不同的服务器上。我怎样才能做到这一点?
我想要这样的东西:
INSERT INTO db1.table1(row1, row2) SELECT row1,row2 FROM db2.table2;
但是数据库位于不同的服务器上。
谢谢你。
我建议使用 Percona Toolkit 中的pt-archiver工具。它可以将行从一个实例复制或移动到另一个实例。它高效且渐进地完成其工作。
例子:
$ pt-archiver --no-delete \
--source h=host1,D=db1,t=table1 \
--dest h=host2,D=db2,t=table2 \
--columns col1,col2 \
--where "1=1" --limit 1000 --commit-each
我认为您需要使用ssh
执行远程命令并mysldump
从远程数据库和 mysql 获取行以将行插入本地数据库。
ssh <remoteuser>@<remoteServer> mysqldump -t -u <remoteDbUser> -p<remoteDbPass> <remoteDbName> <remoteDbTable> -w<whereCondition> | mysql -u <localDbUser> -p<localDbPass> <localDbName>
请注意:
有关 mysqldump 命令的更多信息,请使用手册页。
如果你想在同一台服务器上做两个 MySQL 数据库之间的操作,这很容易。看到这个线程:
http://forums.mysql.com/read.php?61,3063,4004#msg-4004
如果您想从不同服务器上的数据库传输数据,或者如果它是不同类型的数据库,则更加困难,您可能必须使用软件或构建一些软件。MySQL 没有 Oracle 拥有的数据库链接功能
看到这个: http ://dev.mysql.com/doc/refman/5.6/en/federated-create-connection.html 它就像mysql的数据库链接。