I received a Last_Errno: 1118
,
Last_Error: Error 'Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.' on query.
I then compared my master and slave and have found the innodb_file_format
and innodb_file_format_max
on my master are barracuda
but antelope
on my slaves.
I think the barracuda increase noted here, https://dev.mysql.com/doc/refman/5.6/en/innodb-file-format.html, explains this:
index key prefixes up to 3072 bytes
explains the issue so now how can I safely upgrade the file format of my slaves?
Master:
mysql Ver 14.14 Distrib 5.6.41-84.1, for Linux (x86_64) using 6.2
ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
5.6.41-84.1-log
Slave:
mysql Ver 14.14 Distrib 5.6.41-84.1, for Linux (x86_64) using 6.2
ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
5.6.41-84.1
Slave2:
mysql Ver 14.14 Distrib 5.6.41-84.1, for Linux (x86_64) using 6.2
ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
5.6.41-84.1
Table definition:
CREATE TABLE `test_table` (
`ID` int(11) NOT NULL,
`Name` varchar(1000) DEFAULT NULL,
`Tags` varchar(1000) NOT NULL,
`Details` varchar(2000) DEFAULT NULL,
`Active` tinyint(1) DEFAULT NULL,
`UserID` int(11) DEFAULT NULL,
`DateAdded` datetime DEFAULT NULL,
`Excerpt` text,
`Disclosures` varchar(10000) DEFAULT NULL,
`Discussion` text,
`Acknowledgements` varchar(2000) DEFAULT NULL,
`TextContent` mediumtext,
`Materials` text,
`HTMLTopContent` text,
`StreamID` int(11) DEFAULT NULL,
`DatePublished` datetime DEFAULT NULL,
`Access` int(11) DEFAULT NULL,
`DurationMonths` int(11) DEFAULT NULL,
`DurationDays` int(11) DEFAULT NULL,
`AuthorProduced` tinyint(1) DEFAULT NULL,
`CollaborationType` int(11) DEFAULT NULL,
`Indexed` tinyint(1) DEFAULT NULL,
`Revision` int(11) DEFAULT NULL,
`Results` text,
`Stage` int(11) DEFAULT NULL,
`SectionID` int(11) DEFAULT NULL,
`xmlcache` text,
`MaterialMigration` text,
`keycat` int(11) DEFAULT NULL,
`doi` varchar(25) DEFAULT NULL,
`pmid` int(11) DEFAULT NULL,
`Issue` int(11) DEFAULT NULL,
`Introduction` text,
`Citations` text,
`SID` int(11) NOT NULL DEFAULT '0',
`Title` varchar(200) NOT NULL DEFAULT '',
`AbbreviatedTitle` varchar(300) DEFAULT NULL,
`Description` varchar(200) NOT NULL DEFAULT '',
`Article` tinyint(1) NOT NULL DEFAULT '0',
`IsInPress` tinyint(4) NOT NULL DEFAULT '0',
`FinalizedDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`ProgressStep` int(2) DEFAULT NULL COMMENT,
`DraftPublished` datetime DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `Articles_StreamID_Active_DatePublished` (`StreamID`,`Active`,`DatePublished`),
FULLTEXT KEY `AbstractTest` (`Details`,`Name`),
FULLTEXT KEY `xmlcache` (`xmlcache`),
FULLTEXT KEY `articles_fulltext` (`Name`,`Tags`,`Details`,`Excerpt`,`Disclosures`,`Introduction`,`Acknowledgements`,`TextContent`,`Discussion`,`HTMLTopContent`,`Rep_Results`,`Citations`,`xmlcache`,`Materials`),
FULLTEXT KEY `xmlcache_2` (`xmlcache`),
FULLTEXT KEY `Materials` (`Materials`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED |
Post slave update:
+-------------------------------------------+------------------------+
| Variable_name | Value |
+-------------------------------------------+------------------------+
| ignore_builtin_innodb | OFF |
| innodb_adaptive_flushing | ON |
| innodb_adaptive_flushing_lwm | 10 |
| innodb_adaptive_hash_index | ON |
| innodb_adaptive_hash_index_partitions | 1 |
| innodb_adaptive_max_sleep_delay | 150000 |
| innodb_additional_mem_pool_size | 8388608 |
| innodb_api_bk_commit_interval | 5 |
| innodb_api_disable_rowlock | OFF |
| innodb_api_enable_binlog | OFF |
| innodb_api_enable_mdl | OFF |
| innodb_api_trx_level | 0 |
| innodb_autoextend_increment | 64 |
| innodb_autoinc_lock_mode | 1 |
| innodb_buffer_pool_dump_at_shutdown | OFF |
| innodb_buffer_pool_dump_now | OFF |
| innodb_buffer_pool_filename | ib_buffer_pool |
| innodb_buffer_pool_instances | 8 |
| innodb_buffer_pool_load_abort | OFF |
| innodb_buffer_pool_load_at_startup | OFF |
| innodb_buffer_pool_load_now | OFF |
| innodb_buffer_pool_populate | OFF |
| innodb_buffer_pool_size | 2147483648 |
| innodb_change_buffer_max_size | 25 |
| innodb_change_buffering | all |
| innodb_checksum_algorithm | innodb |
| innodb_checksums | ON |
| innodb_cleaner_lsn_age_factor | high_checkpoint |
| innodb_cmp_per_index_enabled | OFF |
| innodb_commit_concurrency | 0 |
| innodb_compressed_columns_threshold | 96 |
| innodb_compressed_columns_zip_level | 6 |
| innodb_compression_failure_threshold_pct | 5 |
| innodb_compression_level | 6 |
| innodb_compression_pad_pct_max | 50 |
| innodb_concurrency_tickets | 5000 |
| innodb_corrupt_table_action | assert |
| innodb_data_file_path | ibdata1:12M:autoextend |
| innodb_data_home_dir | |
| innodb_disable_sort_file_cache | OFF |
| innodb_doublewrite | ON |
| innodb_empty_free_list_algorithm | backoff |
| innodb_fake_changes | OFF |
| innodb_fast_shutdown | 1 |
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |
| innodb_file_per_table | ON |
| innodb_flush_log_at_timeout | 1 |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_flush_method | |
| innodb_flush_neighbors | 1 |
| innodb_flushing_avg_loops | 30 |
| innodb_force_load_corrupted | OFF |
| innodb_force_recovery | 0 |
| innodb_foreground_preflush | exponential_backoff |
| innodb_ft_aux_table | |
| innodb_ft_cache_size | 8000000 |
| innodb_ft_enable_diag_print | OFF |
| innodb_ft_enable_stopword | ON |
| innodb_ft_max_token_size | 84 |
| innodb_ft_min_token_size | 3 |
| innodb_ft_num_word_optimize | 2000 |
| innodb_ft_result_cache_limit | 2000000000 |
| innodb_ft_server_stopword_table | |
| innodb_ft_sort_pll_degree | 2 |
| innodb_ft_total_cache_size | 640000000 |
| innodb_ft_user_stopword_table | |
| innodb_io_capacity | 200 |
| innodb_io_capacity_max | 2000 |
| innodb_kill_idle_transaction | 0 |
| innodb_large_prefix | ON |
| innodb_lock_wait_timeout | 50 |
| innodb_locking_fake_changes | ON |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_arch_dir | ./ |
| innodb_log_arch_expire_sec | 0 |
| innodb_log_archive | OFF |
| innodb_log_block_size | 512 |
| innodb_log_buffer_size | 8388608 |
| innodb_log_checksum_algorithm | innodb |
| innodb_log_compressed_pages | ON |
| innodb_log_file_size | 50331648 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_lru_scan_depth | 1024 |
| innodb_max_bitmap_file_size | 104857600 |
| innodb_max_changed_pages | 1000000 |
| innodb_max_dirty_pages_pct | 75 |
| innodb_max_dirty_pages_pct_lwm | 0 |
| innodb_max_purge_lag | 0 |
| innodb_max_purge_lag_delay | 0 |
| innodb_mirrored_log_groups | 1 |
| innodb_monitor_disable | |
| innodb_monitor_enable | |
| innodb_monitor_reset | |
| innodb_monitor_reset_all | |
| innodb_numa_interleave | OFF |
| innodb_old_blocks_pct | 37 |
| innodb_old_blocks_time | 1000 |
| innodb_online_alter_log_max_size | 134217728 |
| innodb_open_files | 2000 |
| innodb_optimize_fulltext_only | OFF |
| innodb_page_size | 16384 |
| innodb_print_all_deadlocks | OFF |
| innodb_print_lock_wait_timeout_info | OFF |
| innodb_purge_batch_size | 300 |
| innodb_purge_threads | 1 |
| innodb_random_read_ahead | OFF |
| innodb_read_ahead_threshold | 56 |
| innodb_read_io_threads | 4 |
| innodb_read_only | OFF |
| innodb_replication_delay | 0 |
| innodb_rollback_on_timeout | OFF |
| innodb_rollback_segments | 128 |
| innodb_sched_priority_cleaner | 19 |
| innodb_show_locks_held | 10 |
| innodb_show_verbose_locks | 0 |
| innodb_sort_buffer_size | 1048576 |
| innodb_spin_wait_delay | 6 |
| innodb_stats_auto_recalc | ON |
| innodb_stats_include_delete_marked | OFF |
| innodb_stats_method | nulls_equal |
| innodb_stats_on_metadata | OFF |
| innodb_stats_persistent | ON |
| innodb_stats_persistent_sample_pages | 20 |
| innodb_stats_sample_pages | 8 |
| innodb_stats_transient_sample_pages | 8 |
| innodb_status_output | OFF |
| innodb_status_output_locks | OFF |
| innodb_strict_mode | OFF |
| innodb_support_xa | ON |
| innodb_sync_array_size | 1 |
| innodb_sync_spin_loops | 30 |
| innodb_table_locks | ON |
| innodb_thread_concurrency | 0 |
| innodb_thread_sleep_delay | 10000 |
| innodb_tmpdir | |
| innodb_track_changed_pages | OFF |
| innodb_undo_directory | . |
| innodb_undo_logs | 128 |
| innodb_undo_tablespaces | 0 |
| innodb_use_atomic_writes | OFF |
| innodb_use_global_flush_log_at_trx_commit | ON |
| innodb_use_native_aio | ON |
| innodb_use_sys_malloc | ON |
| innodb_version | 5.6.41-84.1 |
| innodb_write_io_threads | 4 |
+-------------------------------------------+------------------------+
148 rows in set (0.00 sec)
SHOW CREATE TABLE
for the table involved.mysql --version
and the last line from theSHOW CREATE TABLE
statement. If there is an additional line(s) needed please let me know. There are 85 columns and 8 indexes in place so I thought that'd be too much to add. 1PRIMARY KEY
, 2KEY
, and 5FULLTEXT KEY
innodb
variables I notice the following differ,innodb_buffer_pool_size
,innodb_empty_free_list_algorithm
,innodb_file_format
(as previously noted),innodb_file_format_max
(PN),innodb_ft_cache_size
,innodb_ft_min_token_size
, andinnodb_status_output
.Distrib 5.6.41-84.1
refers to the command linemysql
. Need to know the server:SELECT @@version;
SHOW CREATE TABLE
. Notice how the error message suggests changing some datatypes. If you have a lot ofVARCHAR(255)
, perhaps shrinking some of them to reasonable sizes would solve the problem.