MySQL timeout while processing large LOAD DATA INFILE

I'm using the MySQL connector for JDBC, processing a large CSV file using "LOAD DATA LOCAL INFILE" to insert records into a database running on another server within the local subnet.

After about a minute I get an error:

Communications link failure
Last packet sent to the server was 53123ms ago

I'm assuming there's some kind of timeout (understandable, some of the files I'm working with have over one million records).  I'm not sure where the problem is, or how to fix it:

- JDBC connection pool settings?
- MYSQL on the target server has "wait_timeout" set to 28800 (documented as seconds, not ms)
LVL 1
Nick75Asked:
Who is Participating?
 
objectsCommented:
> | max_allowed_packet              | 16776192                    |

thats one to check. how big is the file?
0
 
Maheshwar RSoftware DeveloperCommented:
0
 
Nick75Author Commented:
omah - do you mean "setQueryTimeout()", "                  setLocalInfileInputStream()" or something else?
0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

 
Maheshwar RSoftware DeveloperCommented:
yes just set setQueryTimeout to a maximum value.
0
 
Nick75Author Commented:
I was hopeful that was going to be it, but unfortunately no:

    log.debug(sql);
    stmt.setQueryTimeout(60 * 30);  // should give me half an hour, but fails after 30 seconds
    stmt.execute( sql );

2010-04-28 22:22:33,109 DEBUG: LOAD DATA LOCAL INFILE '/temp/my_file.txt' INTO TABLE my_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES (col1, col2, col3) SET col4=4, col5=5
2010-04-28 22:23:03,391 ERROR: Failed to update database: Communications link failure

Last packet sent to the server was 30255 ms ago.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 30255 ms ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3246)
    at com.mysql.jdbc.MysqlIO.sendFileToServer(MysqlIO.java:3338)
    at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2508)
    at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1746)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2135)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
    at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:734)
0
 
objectsCommented:
that looks like the connection is being dropped server side so perhaps check the server settings.
0
 
Nick75Author Commented:
Anything significant here?

mysql> show variables;
+---------------------------------+-----------------------------+
| Variable_name                   | Value                       |
+---------------------------------+-----------------------------+
| automatic_sp_privileges         | ON                          |
| back_log                        | 50                          |
| binlog_cache_size               | 32768                       |
| bulk_insert_buffer_size         | 8388608                     |
| completion_type                 | 0                           |
| concurrent_insert               | 1                           |
| connect_timeout                 | 5                           |
| delay_key_write                 | ON                          |
| delayed_insert_limit            | 100                         |
| delayed_insert_timeout          | 300                         |
| delayed_queue_size              | 1000                        |
| ft_max_word_len                 | 84                          |
| ft_min_word_len                 | 4                           |
| ft_query_expansion_limit        | 20                          |
| ft_stopword_file                | (built-in)                  |
| group_concat_max_len            | 1024                        |
| have_archive                    | YES                         |
| have_bdb                        | NO                          |
| have_blackhole_engine           | YES                         |
| have_compress                   | YES                         |
| have_crypt                      | YES                         |
| have_csv                        | YES                         |
| have_dynamic_loading            | YES                         |
| have_federated_engine           | YES                         |
| have_geometry                   | YES                         |
| have_innodb                     | YES                         |
| have_isam                       | NO                          |
| have_merge_engine               | YES                         |
| have_ndbcluster                 | DISABLED                    |
| have_openssl                    | DISABLED                    |
| have_ssl                        | DISABLED                    |
| have_query_cache                | YES                         |
| have_raid                       | NO                          |
| have_rtree_keys                 | YES                         |
| have_symlink                    | YES                         |
| init_connect                    |                             |
| init_file                       |                             |
| init_slave                      |                             |
| innodb_additional_mem_pool_size | 1048576                     |
| innodb_autoextend_increment     | 8                           |
| innodb_buffer_pool_awe_mem_mb   | 0                           |
| innodb_buffer_pool_size         | 8388608                     |
| innodb_checksums                | ON                          |
| innodb_commit_concurrency       | 0                           |
| innodb_concurrency_tickets      | 500                         |
| innodb_data_file_path           | ibdata1:10M:autoextend      |
| innodb_data_home_dir            |                             |
| innodb_doublewrite              | ON                          |
| innodb_fast_shutdown            | 1                           |
| innodb_file_io_threads          | 4                           |
| innodb_file_per_table           | OFF                         |
| innodb_flush_log_at_trx_commit  | 1                           |
| innodb_flush_method             |                             |
| innodb_force_recovery           | 0                           |
| innodb_lock_wait_timeout        | 50                          |
| innodb_locks_unsafe_for_binlog  | OFF                         |
| innodb_log_arch_dir             |                             |
| innodb_log_archive              | OFF                         |
| innodb_log_buffer_size          | 1048576                     |
| innodb_log_file_size            | 5242880                     |
| innodb_log_files_in_group       | 2                           |
| innodb_log_group_home_dir       | ./                          |
| innodb_max_dirty_pages_pct      | 90                          |
| innodb_max_purge_lag            | 0                           |
| innodb_mirrored_log_groups      | 1                           |
| innodb_open_files               | 300                         |
| innodb_rollback_on_timeout      | OFF                         |
| innodb_support_xa               | ON                          |
| innodb_sync_spin_loops          | 20                          |
| innodb_table_locks              | ON                          |
| innodb_thread_concurrency       | 8                           |
| innodb_thread_sleep_delay       | 10000                       |
| interactive_timeout             | 28800                       |
| join_buffer_size                | 131072                      |
| key_buffer_size                 | 16777216                    |
| key_cache_age_threshold         | 300                         |
| key_cache_block_size            | 1024                        |
| key_cache_division_limit        | 100                         |
| large_files_support             | ON                          |
| large_page_size                 | 0                           |
| large_pages                     | OFF                         |
| license                         | GPL                         |
| local_infile                    | ON                          |
| locked_in_memory                | OFF                         |
| log                             | OFF                         |
| log_bin                         | OFF                         |
| log_bin_trust_function_creators | OFF                         |
| log_error                       |                             |
| log_queries_not_using_indexes   | ON                          |
| log_slave_updates               | OFF                         |
| log_slow_queries                | ON                          |
| log_warnings                    | 1                           |
| long_query_time                 | 2                           |
| low_priority_updates            | OFF                         |
| lower_case_file_system          | OFF                         |
| lower_case_table_names          | 0                           |
| max_allowed_packet              | 16776192                    |
| max_binlog_cache_size           | 4294967295                  |
| max_binlog_size                 | 104857600                   |
| max_connect_errors              | 10                          |
| max_connections                 | 100                         |
| max_delayed_threads             | 20                          |
| max_error_count                 | 64                          |
| max_heap_table_size             | 16777216                    |
| max_insert_delayed_threads      | 20                          |
| max_join_size                   | 18446744073709551615        |
| max_length_for_sort_data        | 1024                        |
| max_prepared_stmt_count         | 16382                       |
| max_relay_log_size              | 0                           |
| max_seeks_for_key               | 4294967295                  |
| max_sort_length                 | 1024                        |
| max_sp_recursion_depth          | 0                           |
| max_tmp_tables                  | 32                          |
| max_user_connections            | 0                           |
| max_write_lock_count            | 4294967295                  |
| multi_range_count               | 256                         |
| myisam_data_pointer_size        | 6                           |
| myisam_max_sort_file_size       | 2147483647                  |
| myisam_recover_options          | OFF                         |
| myisam_repair_threads           | 1                           |
| myisam_sort_buffer_size         | 8388608                     |
| myisam_stats_method             | nulls_unequal               |
| ndb_autoincrement_prefetch_sz   | 32                          |
| ndb_force_send                  | ON                          |
| ndb_use_exact_count             | ON                          |
| ndb_use_transactions            | ON                          |
| ndb_cache_check_time            | 0                           |
| ndb_connectstring               |                             |
| net_buffer_length               | 1048576                     |
| net_read_timeout                | 30                          |
| net_retry_count                 | 10                          |
| net_write_timeout               | 60                          |
| new                             | OFF                         |
| old_passwords                   | OFF                         |
| open_files_limit                | 1024                        |
| optimizer_prune_level           | 1                           |
| optimizer_search_depth          | 62                          |
| preload_buffer_size             | 32768                       |
| profiling                       | OFF                         |
| profiling_history_size          | 15                          |
| protocol_version                | 10                          |
| query_alloc_block_size          | 8192                        |
| query_cache_limit               | 1048576                     |
| query_cache_min_res_unit        | 4096                        |
| query_cache_size                | 33554432                    |
| query_cache_type                | ON                          |
| query_cache_wlock_invalidate    | OFF                         |
| query_prealloc_size             | 8192                        |
| range_alloc_block_size          | 2048                        |
| read_buffer_size                | 131072                      |
| read_only                       | OFF                         |
| read_rnd_buffer_size            | 262144                      |
| relay_log_purge                 | ON                          |
| relay_log_space_limit           | 0                           |
| rpl_recovery_rank               | 0                           |
| secure_auth                     | OFF                         |
| secure_file_priv                |                             |
| server_id                       | 0                           |
| skip_external_locking           | ON                          |
| skip_networking                 | OFF                         |
| skip_show_database              | OFF                         |
| slave_compressed_protocol       | OFF                         |
| slave_load_tmpdir               | /tmp/                       |
| slave_net_timeout               | 3600                        |
| slave_skip_errors               | OFF                         |
| slave_transaction_retries       | 10                          |
| slow_launch_time                | 2                           |
| sort_buffer_size                | 50331640                    |
| sql_big_selects                 | ON                          |
| sql_mode                        |                             |
| sql_notes                       | ON                          |
| sql_warnings                    | OFF                         |
| ssl_ca                          |                             |
| ssl_capath                      |                             |
| ssl_cert                        |                             |
| ssl_cipher                      |                             |
| ssl_key                         |                             |
| storage_engine                  | MyISAM                      |
| sync_binlog                     | 0                           |
| sync_frm                        | ON                          |
| system_time_zone                | EST                         |
| table_cache                     | 128                         |
| table_lock_wait_timeout         | 50                          |
| table_type                      | MyISAM                      |
| thread_cache_size               | 8                           |
| thread_stack                    | 131072                      |
| timed_mutexes                   | OFF                         |
| tmp_table_size                  | 33554432                    |
| tmpdir                          | /tmp                        |
| transaction_alloc_block_size    | 8192                        |
| transaction_prealloc_size       | 4096                        |
| tx_isolation                    | REPEATABLE-READ             |
| updatable_views_with_limit      | YES                         |
| version                         | 5.0.51a-3ubuntu5.5-log      |
| version_comment                 | (Ubuntu)                    |
| version_compile_machine         | i486                        |
| version_compile_os              | debian-linux-gnu            |
| wait_timeout                    | 28800                       |
+---------------------------------+-----------------------------+


0
 
Nick75Author Commented:
theGhost - No, it's not a "Last packet sent to the server was 0ms ago." problem - I can successfully process other smaller CSV files, it's just the larger ones that it gets stuck on.
0
 
Nick75Author Commented:
I changed "max_allowed_packet" in /etc/mysql/my.cnf to a larger value and it's working now, thanks.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.