# 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!


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


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;

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


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 .


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!


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


14

fácil substituir

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql

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


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.


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.

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.