我想用bash腳本將數據庫中的特定表中的行插入到另一個數據庫中。這兩個數據庫位於不同的服務器上。我怎樣才能做到這一點?如何使用bash腳本鏈接2個MySQL數據庫
我想是這樣的:
INSERT INTO db1.table1(ROW1,ROW2)SELECT ROW1,ROW2 FROM db2.table2;
但是數據庫在不同的服務器上。
謝謝。
我想用bash腳本將數據庫中的特定表中的行插入到另一個數據庫中。這兩個數據庫位於不同的服務器上。我怎樣才能做到這一點?如何使用bash腳本鏈接2個MySQL數據庫
我想是這樣的:
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>
收費attenction說:
使用手冊頁,瞭解mysqldump命令的詳細信息。
如果你想在同一臺服務器上的兩個MySQL數據庫之間進行操作,很容易。看到這個線程:
http://forums.mysql.com/read.php?61,3063,4004#msg-4004
如果你想將數據從一個數據庫在不同的服務器上轉移,或者如果它是一個不同類型的數據庫,它是比較困難的,你可能會需要使用軟件或建立一些。 MySQL沒有Oracle提供的數據庫鏈接功能
我建議使用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
看到這個: http://dev.mysql.com/doc/refman/5.6/en/federated-create-connection.html 這就像mysql的數據庫鏈接。
是的,但實際上沒有人在MySQL中使用聯合。它有太多的錯誤。 –
看來你可以從內置的功能中獲益,稱爲「複製」。 –
[mysql replication](http://dev.mysql.com/doc/refman/5.0/en/replication.html)[percona toolkit](http://www.percona.com/software/percona-toolkit)有有用的複製監控東西。 – peteches