【发布时间】:2021-06-22 23:08:40
【问题描述】:
我正在使用 Windows VPS 抓取数据。我正在使用 Python MySQL-Connector 将抓取的数据上传到 Linux 专用服务器。
import mysql.connector
mydb = mysql.connector.connect(
host="...",
user="...",
password="...",
database="...",
connection_timeout=60
)
mycursor = mydb.cursor()
大约 25% 的时间会失败,或者需要 20 多秒。当它失败时,我得到一个 10060 错误。问题更可能是我的 Linux 服务器还是我的 Windows VPS?帮助由衷感谢。这是错误消息:
2055: Lost connection to MySQL server at '[IP]:3306', system error: 10060 A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
【问题讨论】:
-
您插入的数据是否大于
max_allowed_packet设置?见dev.mysql.com/doc/refman/8.0/en/error-lost-connection.html -
感谢您回复我。我不确定。我有应该插入的记录的日志。当我通过在本地机器上运行 Python 脚本插入它们时。它工作正常。你认为这可能意味着什么?感谢您指出该资源。现在阅读。
-
如果您使用“localhost”连接到本地计算机,则可能不会强制执行 max_allowed_packet,因为您甚至没有使用 TCP 进行连接。 localhost 改为使用 UNIX 域套接字。我想知道如果您通过“127.0.0.1”连接,强制它使用 TCP 连接,您的应用是否可以在本地运行?
-
当我说“本地机器”时,我指的是我的笔记本电脑。因此,当我通过脚本上传(使用远程 MySQL)时,它失败了 2% 的时间。当我在笔记本电脑上使用相同的脚本执行相同的查询时,它似乎总是可以正常工作。
-
这个家伙似乎也面临着同样的问题。johnnn.tech/q/…。不是他如何怀疑“也许问题与我共享主机并且没有为私人服务器付费的事实有关。”
标签: python mysql linux server mysql-connector