1267: Illegal mix of collations
MySQLO que significa?
Em uma operação de comparação ou combinação (JOIN, WHERE, UNION, CONCAT), duas strings com collations diferentes foram combinadas e o MySQL não conseguiu determinar quais regras de collation aplicar.
Por que acontece?
Geralmente, comparar colunas com conjuntos de caracteres/collations diferentes (por exemplo, utf8mb4_general_ci vs. utf8mb4_unicode_ci, ou latin1 vs. utf8mb4), ou uma divergência entre uma coluna e a collation da conexão. Comum quando tabelas/bancos foram criados com padrões diferentes.
Como resolver
Leve os dois lados da comparação para a mesma collation: especifique uma collation explícita com COLLATE (por exemplo, col1 = col2 COLLATE utf8mb4_unicode_ci) ou use CONVERT(... USING ...). Como solução permanente, converta as colunas/tabelas afetadas para um único conjunto de caracteres e collation consistentes. Alinhe também a collation da conexão (collation_connection).
Mais entradas deste banco
- 3948Loading local data is disabled; this must be enabled on both the client and server sides (o carregamento de dados locais está desabilitado; deve ser habilitado no cliente e no servidor)
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key (definição de tabela incorreta; só pode haver uma coluna automática e ela deve ser definida como chave)
- 1055Expression not in GROUP BY (only_full_group_by) (expressão que não está no GROUP BY)
- 1030Got error N from storage engine
- 1197Multi-statement transaction required more than 'max_binlog_cache_size' (a transação com vários comandos exigiu mais que 'max_binlog_cache_size')
- 1785Statement violates GTID consistency
- 3024Query execution was interrupted, maximum statement execution time exceeded (execução da consulta interrompida; tempo máximo de execução excedido)