Python 如何自动将特定的MySQL表从一台机器移动到另一台机器?
我有一个MySQL数据库,其表的形式为Python 如何自动将特定的MySQL表从一台机器移动到另一台机器?,python,mysql,database,sharding,Python,Mysql,Database,Sharding,我有一个MySQL数据库,其表的形式为“shard_0”,“shard_1”,“shard_2”,等等 这些是虚拟碎片。现在我想添加另一个DB服务器并将偶数个碎片(“shard_0”,“shard_2”,“shard_4”,…)移动到新机器上 最好的方法是什么?有很多表,所以理想情况下,我不必单独键入每个表名,而是自动执行某些操作。也许是这样的: # pseudo code for i in range(n): tablename = "shard_"+str(2*i)
“shard_0”
,“shard_1”
,“shard_2”
,等等
这些是虚拟碎片。现在我想添加另一个DB服务器并将偶数个碎片(“shard_0”
,“shard_2”
,“shard_4”
,…)移动到新机器上
最好的方法是什么?有很多表,所以理想情况下,我不必单独键入每个表名,而是自动执行某些操作。也许是这样的:
# pseudo code
for i in range(n):
tablename = "shard_"+str(2*i)
# Move tablename to new machine
谢谢我不确定我是否看到了问题,但是如果我没有弄错,您可以使用Python生成导出SQL脚本,并为另一台机器生成导入脚本 这样就省去了手工操作的麻烦。至于您的代码片段,我认为将数据库从一台服务器迁移到另一台服务器的最佳方法是使用引擎自己的功能。我将创建一个(或多个)mysqldump调用,如下所示
print "mysqldump database",
for i in range(n):
print "shard_"+str(2*i),
在shell中运行这个命令,将转储文件移动到新机器上,然后通过mysql在那里运行它。
然后为已移动的表生成并运行“drop table”语句