Você pode ter que recorrer a isso se não conseguir descobrir isso de outra forma,
ATUALIZAÇÃO 2012-01-23 11:43 EDT
Como você mencionou que uma determinada tabela tem o mecanismo de armazenamento errado, aqui está o que você faz:
Olhe acima no Passo 03. Vá encontrar a tabela no arquivo. Procure ENGINE=MyISAMno arquivo e altere para ENGINE=InnoDB. Em seguida, carregue primeiro o arquivo de esquema e depois o arquivo de dados.
ATUALIZAÇÃO 2012-01-23 11:52 EDT
Você deve adicionar isso a /etc/my.cnf
[mysqld]
default-storage-engine=InnoDB
então corra service mysql restart. Se você não puder reiniciar o mysql neste momento, execute isto no cliente mysql:
mysql> SET GLOBAL default_storage_engine = 'InnoDB';
No entanto, o mysqldump ainda terá o ENGINE=MyISAMno final de cada arquivo CREATE TABLE. Você terá que executar o plano de 5 etapas que mencionei acima, incluindo alterar o ENGINE=MyISAMpara ENGINE=InnoDB. NÃO MUDE ISSO PARA O BANCO DE DADOS mysql !!! Altere apenas as tabelas que são suas.
Você pode ajustar algum comprimento VARCHAR em alguma tabela com base no conjunto de caracteres que está usando.
Essa mensagem de erro exata é realmente postada como um relatório de bug de novembro de 2004 , quando na verdade não é realmente um bug. Isso deve orientá-lo sobre como ajustar os comprimentos das chaves, especialmente suas CHAVES PRIMÁRIAS.
Se você sabe qual tabela está causando o
Error 1071
, faça o seguinte:Etapa 01) esquema de banco de dados somente mysqldump
Passo 02) mysqldump somente dados
Passo 03) Utilizando o vi ou algum outro editor, edite a PRIMARY KEY da tabela para limitar manualmente a PRIMARY KEY de forma que a chave não ultrapasse 1000 caracteres .
Passo 04) Carregar o esquema
Passo 05) Carregue os dados
Você pode ter que recorrer a isso se não conseguir descobrir isso de outra forma,
ATUALIZAÇÃO 2012-01-23 11:43 EDT
Como você mencionou que uma determinada tabela tem o mecanismo de armazenamento errado, aqui está o que você faz:
Olhe acima no Passo 03. Vá encontrar a tabela no arquivo. Procure
ENGINE=MyISAM
no arquivo e altere paraENGINE=InnoDB
. Em seguida, carregue primeiro o arquivo de esquema e depois o arquivo de dados.ATUALIZAÇÃO 2012-01-23 11:52 EDT
Você deve adicionar isso a /etc/my.cnf
então corra
service mysql restart
. Se você não puder reiniciar o mysql neste momento, execute isto no cliente mysql:No entanto, o mysqldump ainda terá o
ENGINE=MyISAM
no final de cada arquivoCREATE TABLE
. Você terá que executar o plano de 5 etapas que mencionei acima, incluindo alterar oENGINE=MyISAM
paraENGINE=InnoDB
. NÃO MUDE ISSO PARA O BANCO DE DADOS mysql !!! Altere apenas as tabelas que são suas.