我有一个巨大的(1GB+)数据库转储,我想将它加载到其他服务器上的新数据库中。我尝试逐行解析它并将每个执行到mysql中,但不幸的是它没有将行均匀地拆分为命令,并且在不完整的命令上失败。
filename='/var/test.sql'
fp = open(filename)
while True:
a = fp.readline()
if not a:
break
cursor.execute(a) #fails most of the time
将整个事物加载到内存调用中也太大了。此外,python MySQLdb 模块不支持source 命令。
已编辑
文件包括一堆插入和创建语句。它的失败在于插入包含原始文本的大表。原始文本中有各种分号和换行符,因此很难根据这些来拆分命令。