我正在使用带有 Python 库的 Python 脚本MySQLdb
将大量数据上传到本地 MySQL 数据库。当我使用数据样本时,一切都运行良好并上传。现在我正在使用我的所有数据(大约 300000 行,分为 12000 个文本文件),我收到以下错误:
"OperationalError: (2003, ""Can't connect to MySQL server on 'localhost' (10055)"")"
在崩溃时,它已上传了 17231 行信息。我在台式机上使用 Python 2.7、Win7 64 和 MySQL 5.1.53。我使用 WAMP 安装并使用 PhpMyAdmin 查看数据。我用来上传数据的函数示例如下:
# upload data
def updateDB(db, table, values):
db = MySQLdb.connect (host = 'localhost', user = 'root', passwd = '', db = db)
cursor = db.cursor()
print str(values)
cursor.execute(makeSQLHeader(table, values), values)
db.commit()
db.close()
这对于测试数据来说效果很好,并且文本文件结构对于我的所有数据都是相同的。解决这个问题的好策略是什么?
答案1
我对此有两种想法:要么是加载时间太长,要么是超时断开连接。在 Python 中有一些方法可以自动重新连接找到这里 以下是mysql中相关的超时变量:等待超时和interactive_timeout
第二个想法,从评论中的讨论来看,它似乎是正确的。你可能击中了mysql 连接通过打开每个文件的连接来限制。
尝试打开单个连接并运行测试(当您执行此操作时,可能会遇到超时,具体取决于所需的时间)。