Código de erro 1005 (errno: 121) após criar a tabela enquanto restaura o banco de dados MySQL de um dump

1

Eu tenho uma máquina prod linux e uma máquina dev Win7 64bit. Meu fluxo de trabalho inclui descarregar o banco de dados MySQL de produção na máquina linux e restaurá-lo em meu banco de dados MySQL local na máquina Windows (usando SQLyog). Isso funcionou bem por um longo tempo.

Após alguns problemas, eu formatei e reinstalei minha máquina do Windows. Desde então, não consigo restaurar o banco de dados. Eu continuo recebendo o seguinte erro:

Query:
CREATE TABLE 'auth_group' (
  'id' int(11) NOT NULL auto_increment,
  'name' varchar(80) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  ('id'),
  UNIQUE KEY 'name' ('name')
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Error occured at:2010-06-26 17:16:14
Line no.:30
Error Code: 1005 - Can't create table 'ap_site.auth_group' (errno: 121)

Observe que esta é a primeira instrução create table no arquivo sql dump.

Este erro ocorre tanto no MySQL Community Server 5.1.41 como no 5.1.48 e com o SQLyog Community 8.0.4 e 8.5.1. Eu realmente não sei o que é diferente na minha configuração antes da reinstalação e agora e por que isso tem esse efeito.

Restaurar a partir do sql dump é algo que preciso continuar a fazer, portanto, preciso de uma correção permanente e não de uma solução personalizada.

    
por Jonathan 26.06.2010 / 16:27

2 respostas

1

O erro que você recebeu significa:

MySQL error code 121: Duplicate key on write or update

Seus nomes de chave / restrição devem ser exclusivos em todo o banco de dados.

Para resolver o problema, escolha um nome diferente para a chave com o mesmo nome de uma chave existente ou renomeie a chave existente.

    
por 27.04.2013 / 04:34
0

Após ler lotes de encadeamentos sobre esse erro, principalmente sobre uma restrição em que as Chaves Estrangeiras devem ser nomeadas exclusivamente em todo o banco de dados, a seguinte solução simples funcionou:

Descarte o banco de dados, recrie-o e tente novamente:)

    
por 26.06.2010 / 17:20