2

bash スクリプトを使用して、データベース内の特定のテーブルから別のデータベースに行を挿入したいと考えています。2 つのデータベースは異なるサーバー上にあります。どうやってやるの?

私はこのようなものが欲しい:

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

ただし、データベースは別のサーバーにあります。

ありがとうございました。

4

4 に答える 4

2

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
于 2013-01-16T13:59:05.957 に答える
1

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 コマンドの詳細については、man ページを使用してください。

于 2013-01-16T13:59:50.877 に答える
0

同じサーバー上の 2 つの MySQL データベース間で操作を行いたい場合は、簡単です。このスレッドを参照してください:

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

別のサーバー上のデータベースからデータを転送したい場合、または別の種類のデータベースである場合、それはより困難であり、おそらくソフトウェアを使用するか、いくつかを構築する必要があります. MySQL には、Oracle が持つデータベース リンク機能がありません。

于 2013-01-16T13:53:33.030 に答える
0

これを参照してください: http://dev.mysql.com/doc/refman/5.6/en/federated-create-connection.html mysql の db リンクのようなものです。

于 2013-01-16T14:12:47.027 に答える