大量数据上传时 MySQL 错误

大量数据上传时 MySQL 错误

我正在使用带有 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 连接通过打开每个文件的连接来限制。

尝试打开单个连接并运行测试(当您执行此操作时,可能会遇到超时,具体取决于所需的时间)。

答案2

可能是您遇到了最大允许数据包数的限制。您可以在 my.cnf 中设置如下内容:

max_allowed_packet=12M

有关详细信息,请参阅本文在 MySQL 参考指南中。

相关内容