# 1273 - Agrupamento desconhecido: 'utf8mb4_unicode_520_ci'

157

Eu tenho um site WordPress no meu servidor WAMP local . Mas quando eu carrego seu banco de dados no servidor ativo, recebo um erro

#1273  Unknown collation: utf8mb4_unicode_520_ci

Qualquer ajuda seria apreciada!

Shishil Patel
fonte
37
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Nabil Kadimi
4
Em um mar de soluções de busca e substituição abaixo, não se esqueça de verificar a resposta de @ SherylHohman primeiro - basta atualizar para o mariadb / mysql 5.6 para que seu servidor suporte esse agrupamento.
Squarecandy 6/05/19
1
Qual versão do WordPress? Veja make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade
Rick James
Também há um guia rápido aqui ( wpza.net/unknown-collation-utf8mb4_unicode_520_ci ) que explica todas as três etapas que você deve executar para garantir que você tenha feito tudo.
WPZA 25/02/19
Verifique esta solução aqui para # 1273 - Separação desconhecida: 'utf8mb4_0900_ai_ci' freakyjolly.com/…
Code Spy

Respostas:

217

Você pode resolver isso encontrando

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

no seu .sqlarquivo e trocando-o com

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
sandani savani
fonte
28
Eu recomendo a resposta por Sabba ( stackoverflow.com/a/44122258/168309 ), uma vez que mantém o utf8mb4
Amir
5
A solução abaixo do @Sabba Keynejad é melhor na minha opinião, uma vez que mantém o mb4, você deve tentar isso primeiro.
Maor Barazany 2/17/17
Note, eu tive que substituir isso em vários lugares no arquivo SQL. Também houve lugares em que eu tive que fazer stackoverflow.com/a/44122258/1436129 abaixo também.
Aubreypwd
Na verdade, essa resposta funcionou quando a resposta vinculada de Sabba não funcionou. Presumivelmente por causa dos meus padrões de instalação do MySql. +1
Gone Coding
não está funcionando, agora está dando erro COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' :, substituí utf8mb4_unicode_520_cipor utf8mb4_unicode_cie está funcionando, conforme resposta do Sabba.
Haritsinh Gohil
286

Acredito que esse erro foi causado porque o servidor local e o servidor ativo estão executando versões diferentes do MySQL. Para resolver isso:

  1. Abra o arquivo sql no seu editor de texto
  2. Encontre e substitua tudo utf8mb4_unicode_520_ciporutf8mb4_unicode_ci
  3. Salvar e fazer upload para um novo mySql db

espero que ajudeinsira a descrição da imagem aqui

Sabba Keynejad
fonte
4
DE JEITO NENHUM!!! Foi amplamente documentado que utf8mb4_unicode_520_cipossui um suporte UTF-8 muito melhor do que utf8mb4_unicode_ci! Molho: mysql.rjweb.org/doc.php/charcoll#best_practice com esclarecimento visual provando que 520_ci é superior aqui: mysql.rjweb.org/utf8_collations.html
John
5
@ John, os artigos que você vinculou realmente não defendem esse comentário. O "Assim" deles nem mesmo pode ser afirmado adequadamente a partir de sua premissa. No geral, o artigo inteiro está mal escrito, embora pareça haver boas informações. O agrupamento 520 usa uma versão mais recente do Algoritmo de Collation Unicode (UCA - versão 5.2.0) com pesos diferentes, mas dizer que "tem um suporte UTF-8 muito melhor" parece mais que um exagero.
Gremio
Vamos supor que um corpo de padrões (Unicode) geralmente torne cada versão mais nova (5.20) "melhor" que uma versão mais antiga (4.0).
Rick James
Esta é a melhor resposta.
Niby
Sugiro esta solução porque ela substitui todas as ocorrências "utf8mb4_unicode_520_ci". Considerando savip sandip resposta deixa alguns.
Rakesh
49

No meu caso, o meu
novo servidor estava em execução MySQL 5.5, o
servidor antigo estava em execução MySQL 5.6.
Então, recebi esse erro ao tentar importar o .sqlarquivo que havia exportado do meu servidor antigo.

O MySQL 5.5 não suporta utf8mb4_unicode_520_ci, mas o
MySQL 5.6 sim.

A atualização para MySQL 5.6o novo servidor resolveu o agrupamento do erro!

Se você deseja manter o MySQL 5.5, você pode:
- fazer uma cópia do seu .sqlarquivo exportado
- substituir instâncias utf8mb4unicode520_cie utf8mb4_unicode_520_ci
... por utf8mb4_unicode_ci
- importar seu .sqlarquivo atualizado .

SherylHohman
fonte
2
Esta é absolutamente a melhor maneira de fazer isso se você tiver controle total sobre o seu servidor. Atualize o novo servidor para que ele corresponda ao servidor antigo. Se você não tiver acesso para atualizar o novo local do servidor, o método find-replace provavelmente estará ok, mas em qualquer caso em que você possa fazer essa atualização, deve fazê-lo.
Squarecandy 6/05/19
1
5.6 é quando 520 foi adicionado.
Rick James
Essa deve ser a resposta correta. A maioria das outras soluções é mais parecida com hacks. Obrigado @SherylHohman
sawyerrken
30

Abra o arquivo sql no seu editor de texto;

1. Pesquisa: utf8mb4_unicode_ci Substitua: utf8_general_ci (Substituir Tudo)

2. Pesquisa: utf8mb4_unicode_520_ci Substitua: utf8_general_ci (Substituir Tudo)

3. Pesquisa: utf8mb4 Substitua: utf8 (Substituir Tudo)

Salve e faça o upload!

VUUB
fonte
Estou muito feliz por ter encontrado sua solução para isso, estou recebendo esse erro # 1273 há dias e simplesmente não consegui encontrar uma solução para isso
flying-dev
Lifesaver. Obrigado!
robbclarke 23/01
15

basta remover "520_"
utf8mb4_unicode_520_ciutf8mb4_unicode_ci

Shakil Hossain
fonte
14

fácil substituir

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Scard
fonte
2
No macOS:sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Osvaldas 13/02/19
6

encontre e substitua:

utf8mb4_unicode_520_ci

com

utf8_general_ci

no arquivo sql inteiro

John
fonte
3
generale utf8são ambos os passos para trás.
Rick James
3

Tarde para a festa, mas caso isso aconteça com uma WORDPRESSinstalação:

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

No phpmyadmin, em export method>Format-specific options (exportação personalizada)

Definido como : MYSQL40

Se você tentar importar agora, poderá receber outra mensagem de erro:

1064 - You have an error in your SQL syntax; .....

Isso ocorre porque a TYPEopção mais antiga que era sinônimo deENGINE foi removida no MySQL 5.5.

Abre o teu .sql arquivo, pesquise e substitua todas as instâncias

de TYPE= paraENGINE=

Agora a importação deve ocorrer sem problemas.

Obmerk Kronen
fonte
3

Obtendo o erro de agrupamento # 1273 - Agrupamento desconhecido: 'utf8mb4_unicode_520_ci' é causado pela diferença da versão do MySQL da qual você exporta e do nosso servidor MySQL para o qual você importa. Basicamente, a biblioteca do Wordpress para a versão mais recente verifica em qual versão do SQL seu site está sendo executado. Se ele usa o MySQL versão 5.6 ou mais, ele assume o uso de um novo e aprimorado Algoritmo de Collation Unicode (UCA) chamado “utf8mb4_unicode_520_ci”. Isso é ótimo, a menos que você acabe movendo o site WordPress de uma versão 5.6 mais recente do MySQL para uma versão anterior do MySQL anterior à 5.6.

Para resolver isso, você precisará editar seu arquivo de exportação SQL e fazer uma pesquisa e substituição, alterando todas as instâncias de 'utf8mb4_unicode_520_ci' para 'utf8mb4_unicode_ci'. Ou siga as etapas abaixo se você tiver um PHPMyAdmin:

  1. Clique na guia Exportar para o banco de dados
  2. Clique no botão de opção Personalizado.
  3. Vá para a seção intitulada Opções específicas de formato e altere o menu suspenso para o sistema de banco de dados ou o servidor MySQL mais antigo para maximizar a compatibilidade de saída com: de NONE a MYSQL40.
  4. Role para baixo e clique em IR.
Mushfiqur Rahman
fonte
1

No meu caso, substituo-o utf8_general_cipor sed assim:

sed -i 's/utf8_0900_ai_ci/utf8_general_ci/g' MY_DB.sql 
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' MY_DB.sql 

Depois disso, posso importá-lo sem nenhum problema.

Achu
fonte