如何链接2个MySQL数据库与bash脚本

我想用bash脚本将数据库中特定表中的行插入到另一个数据库中。 这两个数据库位于不同的服务器上。 我怎样才能做到这一点?

我想要这样的东西:

INSERT INTO db1.table1(row1,row2)SELECT row1,row2 FROM db2.table2;

但是数据库在不同的服务器上。

谢谢。


我想你需要使用ssh来执行一个远程命令和mysldump来获取来自远程数据库和mysql的行以将行插入本地数据库。

ssh <remoteuser>@<remoteServer> mysqldump -t -u <remoteDbUser> -p<remoteDbPass> <remoteDbName> <remoteDbTable> -w<whereCondition> | mysql -u <localDbUser> -p<localDbPass> <localDbName>

注意:

  • -p和密码之间没有空格。
  • -t选项避免了CREATE TABLE sql指令
  • 使用手册页获取有关mysqldump命令的更多信息。


    我建议在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
    

    如果你想在同一台服务器上的两个MySQL数据库之间进行操作,很容易。 看到这个主题:

    http://forums.mysql.com/read.php?61,3063,4004#msg-4004

    如果你想从另一台服务器上的数据库传输数据,或者它是不同类型的数据库,那就更困难了,你可能不得不使用软件或构建一些数据库。 MySQL没有Oracle提供的数据库链接功能

    链接地址: http://www.djcxy.com/p/75329.html

    上一篇: How to link 2 MySQL Databases with bash script

    下一篇: MySQL REGEXP usage within Boolean Match/Against