当我运行大型查询(返回许多行的查询)时,我会得到在查询
期间失去与MySQL server的连接的错误,而且我看不出我做错了什么。我使用来自mysql.com的“新”mysql驱动程序(而不是“旧”的MySQLdb),以及与mamp捆绑在一起的mysql版本。Python 2.7。表未损坏,分析表NRK2013B_TBL;
返回状态OK。下面是一个中断的例子:
#!/usr/bin/python2.7
# coding: utf-8
import sys
import mysql.connector # version 2.0.1
connection = mysql.connector.connect(
unix_socket="/Applications/MAMP/tmp/mysql/mysql.sock",
user="dbUsernam",
passwd="dbUserPassword",
db="nrk",
charset = "utf8",
use_unicode = True)
cur = connection.cursor()
cur.execute("USE nrk;")
sql = """SELECT id FROM nrk2013b_tbl WHERE main_news_category = 'Sport'"""
cur.execute(sql)
rows = cur.fetchall()
print rows
sys.exit(0)
这导致了我大部分时间得到的错误:
Traceback (most recent call last):
File "train_trainer_test.py", line 20, in <module>
remaining_rows = cur.fetchall()
File "/Library/Python/2.7/site-packages/mysql/connector/cursor.py", line 823, in fetchall
(rows, eof) = self._connection.get_rows()
File "/Library/Python/2.7/site-packages/mysql/connector/connection.py", line 669, in get_rows
rows = self._protocol.read_text_result(self._socket, count)
File "/Library/Python/2.7/site-packages/mysql/connector/protocol.py", line 309, in read_text_result
packet = sock.recv()
File "/Library/Python/2.7/site-packages/mysql/connector/network.py", line 226, in recv_plain
raise errors.InterfaceError(errno=2013)
mysql.connector.errors.InterfaceError: 2013: Lost connection to MySQL server during query
第20行是行=cur.fetchall()
[mysqld]
max_allowed_packet = 64M
wait_timeout = 28800
interactive_timeout = 28800
connect-timeout=31536000
PS:我暂时放弃了这一点,改为PyMySQL,而不是Oracle的mysql.connector。修改后,问题似乎就消失了(我自己得出结论,问题出在oracle mysql连接器上)。
import pymysql
conn = pymysql.connect(
unix_socket="/Applications/MAMP/tmp/mysql/mysql.sock",
user="dbUsernam",
passwd="dbUserPassword",
db="nrk",
charset = "utf8",
use_unicode = True)
conn.autocommit(True)
cur = conn.cursor()
我还不得不切换到PyMySQL。我运行的是pip 1.5.6、Python 2.7.8,并尝试了mysql-connector 2.0.1
我能够在Sequel Pro中毫无问题地运行查询,但是我的Python查询在只返回一个结果子集后会出现问题中描述的错误。
切换到PyMySQL,一切按预期工作。
pip install pymysql
import pymysql
connection = pymysql.connect(user='x', passwd='x',
host='x',
database='x')
cursor = connection.cursor()
query = ("MYQUERY")
cursor.execute(query)
for item in cursor:
print item
问题内容: 我收到 错误代码:2013。 当我尝试使用MySQL Workbench向表中添加索引时, 在查询 错误 期间失去了与MySQL服务器的连接 。我还注意到,只要我运行长时间查询,它就会出现。 是否有增加超时值的方法? 问题答案: 新版本的MySQL WorkBench具有更改特定超时的选项。 对我来说,它位于编辑→首选项→SQL编辑器→DBMS连接读取超时(以秒为单位):600 将值更
问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: 查询期间失去与MySQL服务器的连接 我正在将一些数据从大型csv导入mysql表。在将文件导入到表的过程中,我丢失了与服务器的连接。 怎么了? 错误代码为2013:在查询过程中失去与mySql服务器的连接。 我正在从Windows服务器上的ubuntu机器远程运行这些查询。 问题答案: 我发现此问题的最简单解决方案是将MySq
问题内容: 我收到 错误代码:2013。 当我尝试使用MySQL Workbench向表中添加索引时, 在查询 错误 期间丢失了与MySQL服务器的连接 。我还注意到,只要我运行长时间查询,它就会出现。 是否有增加超时值的方法? 问题答案: 新版本的MySQL WorkBench具有更改特定超时的选项。 对我来说,它位于编辑Preferences首选项SQL SQL编辑器DB DBMS连接读取超时
问题内容: 当我使用节点mysql时,在12:00到2:00之间出现错误,表明服务器已关闭TCP连接。这是完整的消息: 有解决办法。但是,以这种方式尝试后,问题也会出现。现在我不知道该怎么办。有人遇到这个问题吗? 这是我按照解决方案编写的方式: 问题答案: 尝试使用以下代码来处理服务器断开连接: 在您的代码中,我错过了之后的部分
我使用以下代码构建这个简单的查询: 但是当我调用fdQuery1.OpenOrexecute时,我会得到错误消息,正如本文主题中所述。 TIA 杨瑜伽士
我有一个SQL查询,有2个子查询。每当我在macOS上的MySQL Workbench上运行它时,它都会给出“错误代码:2013。查询时失去与MySQL服务器的连接”。但是,当它在Windows上的Workbench上运行时,它正常运行,没有任何错误。我试图增加连接超时,但仍然没有成功!关于如何解决这个问题有任何线索吗?我感谢您的支持和合作。 下面是一个给出错误的查询: