Tentei migrar minha instância do AWS RDS do Aurora para o MySQL. Criei um arquivo de despejo do Aurora e o importei para a instância do MySQL.
Ambas as instâncias têm o mesmo conjunto de caracteres.
mysql> show variables like '%char%';
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /rdsdbbin/mysql-5.7.26.R1/share/charsets/ |
+--------------------------+-------------------------------------------+
No banco de dados original, as letras hebraicas aparecem como losangos negros (convertidos para hebraico no lado do aplicativo). Após a migração para a nova instância do MySQL, em vez de diamantes negros, vejo pontos de interrogação.
Qual poderia ser o problema?
Acho que seu problema é que você exportou seu arquivo de despejo com o conjunto de caracteres ANSI, para fazer um arquivo de despejo usando UTF8, emita seu
mysqldump
comando com opção--default-character-set=utf8
e verifique os resultados. (AFAIK as mesmas opções para mysqldump funcionam para Aurora também)PS: Depois de seus comentários, cavei um pouco mais o problema. O problema vem de diferentes configurações para
character-set-system
(que éutf8
),character_set_server
(que élatin1
) comcharacter-set-client
(que éutf8mb4
). Com base neste link para a documentação , essa diferença pode causar problemas na entrada de dados e pode resultar em formato incorreto na saída. Você pode verificar a validade dessa causa raiz alterando seus conjuntos de caracteres para diferentes componentes.