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