Mysql
如何自動將特定的 MySQL 表從一台機器移動到另一台機器?
我有一個 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