查询期间丢失与MySQL服务器的连接?

Shy*_*thy 38 mysql

可能重复:
查询期间与MySQL服务器的连接丢失

我将一些数据从大型csv导入到mysql表中.在将文件导入表的过程中,我丢失了与服务器的连接.

出了什么问题?

错误代码是2013:在查询期间丢失了与mySql服务器的连接.

我在Windows服务器上远程运行这些来自ubuntu机器的查询.

Ash*_*n A 40

尝试以下两件事......

1)my.cnf / my.ini在本[mysqld]节中将其添加到您的

max_allowed_packet=32M
Run Code Online (Sandbox Code Playgroud)

(您可能必须根据现有数据库将此值设置得更高).

2)如果导入仍然无效,请尝试这样做......

mysql -u <user> --password=<password> <database name> <file_to_import
Run Code Online (Sandbox Code Playgroud)


Aug*_*sto 22

通常,当您为数据库会话耗尽一个资源(例如内存)时,会发生这种情况,并且mysql会关闭连接.

你能否将CSV文件分解成较小的文件并进行处理?或者每100行提交一次?我们的想法是,您运行的事务不应尝试插入大量数据.

我忘了添加,这个错误与配置属性有关max_allowed_packet,但我不记得要改变的细节.

  • 有没有办法找出是否是这种情况,一个资源已用尽?在那种情况下,是否有可能找出哪种资源? (4认同)

Shy*_*thy 8

我发现这个问题的最简单的解决方案是将MySql从MySQL Workbench降级到MySQL版本1.2.17.我浏览了一些MySQL论坛,据说MySQL Workbech中的超时时间已被硬编码为600,一些建议的改变它的方法对我来说不起作用.如果某人遇到与工作台相同的问题,您也可以尝试降级.


gmh*_*mhk 6

1)您可能必须增加连接的超时.

2)通过使用--log-warnings = 2选项启动mysqld,可以获得有关丢失连接的更多信息.

这会记录hostname.err文件中的一些断开连接的错误

您可以使用它进行进一步调查

3)如果您尝试将数据发送到BLOB列,请检查服务器的max_allowed_pa​​cket变量,其默认值为1MB.您可能还需要增加客户端的最大数据包大小.有关设置数据包大小的更多信息,请参见以下链接" 数据包太大 ".

4)您可以查看以下网址链接

5)您应检查可用磁盘空间是否大于您尝试更新链接的表