我在办公室运行服务器来处理一些文件并将结果报告给远程MySQL服务器.
文件处理需要一些时间,并且进程在中途死亡,并出现以下错误:
2006, MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)
我听说过MySQL设置,wait_timeout,但我是否需要在我办公室或远程MySQL服务器的服务器上更改它?
我必须导入1go的sql数据,我将max_allowed_packet提升到1100M以确定.
所以我使用:
我的查询
mysql -u root -p -D mainbase < GeoPC_WO.sql
Run Code Online (Sandbox Code Playgroud)
但1分钟后它在此过程中停止,我收到此错误:
**ERROR 2013 (HY000) at line 23: Lost connection to MySQL server during query
**Lost connection to MySQL server during query****
Run Code Online (Sandbox Code Playgroud) 当我运行大型查询(查询返回多行)时,我收到 Lost connection to MySQL server during query错误,我无法看到我做错了什么.我使用mysql.com的"新"mysql驱动程序(不是"旧的"MySQLdb),以及与MAMP捆绑在一起的mysql版本.Python 2.7.表未损坏,analyze table nrk2013b_tbl;返回状态正常.这是一个打破的例子:
#!/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)
Run Code Online (Sandbox Code Playgroud)
这导致我大部分时间都会遇到错误:
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 …Run Code Online (Sandbox Code Playgroud) 首先,我需要指出我在我的机器上运行了Wikipedia转储的sql文件,并且能够运行我需要更新许多有关内存和其他设置上可用索引大小的设置.我只想提一下,那些大的SQL查询运行成功,我没有任何关于内存或超时的问题.
现在我有一个表pagelinks(pl_from,pl_title),显示每个维基百科页面中出现的链接,例如数据可以是(1,"title1"),(1,"title2"),(2,"title3") ),(2,"title1").我想创建一个通过pl_from连接titles组的表.为此,这是我的SQL查询(我正在使用工作台):
SET @@group_concat_max_len=150000;
create table concatpagelinks
(SELECT pl_from, GROUP_CONCAT(pl_title , ' ') as links FROM pagelinks GROUP BY pl_from)
Run Code Online (Sandbox Code Playgroud)
运行此查询我收到错误:"在查询期间丢失了与mysql服务器的连接",系统再次询问我密码.所以我搜索并找到了这个.因此我将net_read_timeout更改为1000并将connect_timeout更改为60.它没有解决问题,所以我将查询更改为:
SET @@group_concat_max_len=150000;
create table concatpagelinks
(SELECT pl_from, GROUP_CONCAT(pl_title , ' ') as links FROM pagelinks GROUP BY pl_from limit 0,1000)
Run Code Online (Sandbox Code Playgroud)
仍然是同样的问题,令人惊奇的是每次查询运行600.495秒并且错误发生.
当我运行我的程序超过几天时,我面临连接MySQL问题的失败.MySQL错误代码是2013年连接到数据库时.MySQL服务器和客户端程序都在同一台机器上.我使用FC5作为我的操作系统,MySQL版本是5.0.18.有人可以对此有所了解吗?
我在调用时收到mysql错误2013 mysql_real_connect()...
任何帮助表示赞赏.
更新:问题现已解决.
我想执行一个执行时间超过99,999秒的查询(例如SELECT SLEEP(150000);).要更改MySQL Workbench中的超时,我们必须转到编辑→首选项→SQL编辑器→DBMS连接读取超时(以秒为单位).但是,该DBMS connection read time out字段仅接受最多5个数字,将字段设置为0等于默认参数(600秒).如果查询花费的时间超过超时,我会收到错误消息:Error Code: 2013. Lost connection to MySQL server during query
因此我的问题是:是否可以将此限制增加到超过99,999秒?我使用Windows 7 64位Ultimate和MySQL Workbench 5.2.47 CE.
该DBMS connection read time out字段:

超时问题(0相当于默认参数(600秒)):
