Recentemente, migrei alguns esquemas de mysql 4
instância para uma instância de operações mysql 5.6
by mysqldump
e import. Após alguns ajustes de sintaxe, consegui importar o arquivo de despejo com sucesso.
Após a importação, revisei o arquivo de log e encontrei alguns problemas. Alguém sabe o que é isso e como resolver?
InnoDB: Error in pars0opt.cc: table cars/cars_ftr_a has prefix_len != 0
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_BEING_DELETED'
InnoDB: in InnoDB data dictionary has unknown flags 50.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_BEING_DELETED_CACHE'
InnoDB: in InnoDB data dictionary has unknown flags 50.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_CONFIG'
InnoDB: in InnoDB data dictionary has unknown flags 50.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_DELETED'
InnoDB: in InnoDB data dictionary has unknown flags 50.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_DELETED_CACHE'
InnoDB: in InnoDB data dictionary has unknown flags 50.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_000000000000040c_INDEX_1'
InnoDB: in InnoDB data dictionary has unknown flags 40.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_000000000000040c_INDEX_2'
InnoDB: in InnoDB data dictionary has unknown flags 40.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_000000000000040c_INDEX_3'
InnoDB: in InnoDB data dictionary has unknown flags 40.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_000000000000040c_INDEX_4'
InnoDB: in InnoDB data dictionary has unknown flags 40.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_000000000000040c_INDEX_5'
InnoDB: in InnoDB data dictionary has unknown flags 40.
2017-08-16 17:14:15 7fd3081c4700 InnoDB: Warning: table 'cars/FTS_00000000000002cb_000000000000040c_INDEX_6'
InnoDB: in InnoDB data dictionary has unknown flags 40.
Editar (adicionando a instrução create table)
Create Table: CREATE TABLE `cars_ftr_a` (
`id` int(10) unsigned NOT NULL DEFAULT '0',
`manufacturer` varchar(100) NOT NULL DEFAULT '',
`model` varchar(255) NOT NULL DEFAULT '',
`object_type` int(10) unsigned NOT NULL DEFAULT '0',
`fts_string` text NOT NULL,
`manufactor_id` int(10) unsigned NOT NULL DEFAULT '0',
`model_id` int(10) unsigned NOT NULL DEFAULT '0',
`version_id` int(10) unsigned NOT NULL DEFAULT '0',
`version` varchar(100) NOT NULL DEFAULT '',
`group_id` int(10) unsigned NOT NULL DEFAULT '0',
`group_name` varchar(100) DEFAULT NULL,
`a` int(10) unsigned DEFAULT NULL,
`b` varchar(100) NOT NULL DEFAULT '',
`price` int(10) unsigned NOT NULL DEFAULT '0',
`c` int(10) unsigned NOT NULL DEFAULT '0',
`d` varchar(100) NOT NULL DEFAULT '',
`e` float NOT NULL DEFAULT '0',
`f` int(10) unsigned NOT NULL DEFAULT '0',
`g` int(10) unsigned NOT NULL DEFAULT '0',
`h` int(10) unsigned NOT NULL DEFAULT '0',
`i` smallint(6) unsigned NOT NULL DEFAULT '0',
`j` varchar(100) NOT NULL DEFAULT '',
`k` int(10) unsigned NOT NULL DEFAULT '0',
`l` int(10) unsigned NOT NULL DEFAULT '0',
`m` int(10) unsigned NOT NULL DEFAULT '0',
`n` varchar(100) NOT NULL DEFAULT '',
`o` int(10) unsigned NOT NULL DEFAULT '0',
`p` text NOT NULL,
`q` varchar(100) NOT NULL DEFAULT '',
`r` int(10) unsigned NOT NULL DEFAULT '0',
`s` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`,`fts_string`(10)),
FULLTEXT KEY `fts_string` (`fts_string`)
) ENGINE=InnoDB DEFAULT CHARSET=hebrew
Há duas coisas que entraram em foco quando você postou a estrutura da tabela
Você acreditaria que alguém perguntou há 7 anos A pesquisa de texto completo do MySql funciona razoavelmente com idiomas não latinos (hebraico, árabe, japonês…) ???
Você deve certificar-se de que o conjunto de caracteres hebraicos em sua instalação do MySQL
juntamente com as colações necessárias
Você pode tentar criar uma nova tabela com a mesma estrutura e carregá-la.
MÉTODO 1
MÉTODO #2
Em seguida, verifique o log de erros e veja se esses mesmos avisos reaparecem. Se não o fizerem, você está pronto para ir. Você também deve procurar ajustar as opções de texto completo do InnoDB.
ATUALIZAÇÃO 2017-08-22 23:17 EDT
MÉTODO #3
Outra coisa que você pode tentar é descartar o índice de texto completo e criá-lo novamente
Em seguida, verifique os logs para ver se os mesmos erros voltaram ou não.
ATUALIZAÇÃO 23/08/2017 11:04 EDT
MÉTODO #4
Carregar nova tabela sem índice de texto completo. Em seguida, crie o índice de texto completo por último.
Não tenho ideia do que o aviso significa, mas um aviso semelhante é mencionado em:
http://www.fromdual.com/migration-between-mysql-percona-server-and-mariadb
Citação: Todas as mensagens de erro das tabelas afetadas pela seguinte mensagem: InnoDB: no dicionário de dados InnoDB tem sinalizadores desconhecidos 40/50/52. pode ser silenciado por uma execução do comando OPTIMIZE TABLE (que pode se tornar bastante caro para tabelas muito grandes).
Você já tentou
OPTIMIZE TABLE
?