LOAD DATA LOCAL INFILE失去连接,如何修复超时?

3as*_*awy 5 mysql load-data-infile

我通过LOAD DATA将一个大文本文件加载到我的数据库中.该文件长约122,000行.更不用说,db被设计为在该表上的AFTER INSERT上触发.确切的是,查询开始执行,持续执行15-20分钟,然后返回

Error Code: 2013
Lost connection to MySQL server during query
Run Code Online (Sandbox Code Playgroud)

然后

Error Code: 2006
MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)

出现错误后,我重新执行查询并立即完成;

0 row(s) affected
Records: 122574  Deleted: 0  Skipped: 122574  Warnings: 0
Run Code Online (Sandbox Code Playgroud)

桌子确实是进口的;

select * from quote
122574 row(s) returned
Run Code Online (Sandbox Code Playgroud)

我在Mac OS X 10.6.4上运行mysqld 5.1.51,我的查询是

    LOAD data local INFILE 
        '/Users/ash/quotes/data.txt' 
        INTO TABLE quote fields 
        TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\r\n' 
          (quote.date,quote.ticker,quote.open,
           quote.high,quote.low,quote.close,quote.volume,@market) 
          SET market = 'sp';
Run Code Online (Sandbox Code Playgroud)

似乎db-connection正在超时,我该如何解决这个问题?

Ash*_*n A 0

您可以在启动 mysqld 时通过设置 wait_timeout 变量来更改时间限制。参考MySQL 文档