Mysql

如何自動將特定的 MySQL 表從一台機器移動到另一台機器?

  • November 1, 2010

我有一個 MySQL 數據庫,其中包含"shard_0""shard_1" "shard_2"、 等形式的表。

我想添加另一個數據庫伺服器並將偶數分片("shard_0", "shard_2", "shard_4", …)移動到新機器上。

我怎麼做?有很多表,所以理想情況下我不必單獨輸入每個表名,而是自動執行某些操作。

謝謝

你可以像這樣轉儲表格

#!/bin/bash

DATABASE="YourDatabaseName"
TNAME=shard_
TVAL="0"

while [ $TVAL -lt 10 ]
do
    mysqldump -u user -pPassword "$DATABASE" "$TNAME$TVAL" > "$TNAME$TVAL.sql"
   TVAL=$[$TVAL+2]
done

您最終會得到文件 shard_0.sql … shard_8.sql。將它們轉移到您想要的新機器上,但類似下面的程式碼應該可以工作

for FILE in `ls shard_*.sql`
do
  scp "$FILE" user@newhost:"$FILE"
done

然後將文件導入新機器上的數據庫

for FILE in `ls shard_*.sql`
do
  mysql -u user -pPassword YourDataBaseName <"$FILE"
done

引用自:https://serverfault.com/questions/196109