【问题标题】:How to link 2 MySQL Databases with bash script如何使用 bash 脚本链接 2 个 MySQL 数据库
【发布时间】:2012-12-30 20:34:39
【问题描述】:

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

我想要这样的东西:

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

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

谢谢。

【问题讨论】:

标签: mysql bash


【解决方案1】:

我建议使用 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

【讨论】:

    【解决方案2】:

    我认为您需要使用ssh 执行远程命令,使用mysldump 从远程数据库获取行,然后使用mysql 将行插入本地数据库。

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

    请注意:

    1. -p 和密码之间没有空格。
    2. -t 选项避免了 CREATE TABLE sql 指令

    使用手册页了解有关 mysqldump 命令的更多信息。

    【讨论】:

      【解决方案3】:

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

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

      如果您想从不同服务器上的数据库传输数据,或者如果它是不同类型的数据库,则更加困难,您可能必须使用软件或构建一些软件。 MySQL 没有 Oracle 的数据库链接功能

      【讨论】:

        【解决方案4】:

        【讨论】:

        • 是的,但几乎没有人在 MySQL 中使用联合。它有太多的错误。
        猜你喜欢
        • 1970-01-01
        • 2017-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-18
        • 1970-01-01
        相关资源
        最近更新 更多