Com minha situação atual, tenho banco de dados mysql com collation e conjuntos de caracteres no banco de dados e tabelas definidas como utf8, mas todos os dados ainda são latin1. Isso ocorre porque o servidor está sendo configurado (my.cnf) com:
character-set-server = latin1
Aqui estão mais informações sobre o servidor de banco de dados antigo:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
Agora temos novas instâncias de banco de dados configuradas corretamente com UTF-8 completo e preciso despejar os dados. Eu tenho tentado de maneiras diferentes sem qualquer sorte. Os dados agora no banco de dados original estão corrompidos e preciso exportá-los para o banco de dados UTF-8 completo.
Eu tentei isso:
mysqldump -h DB_HOST -u DB_USER -p DB_PASSWORD --opt --quote-names \
--skip-set-charset --default-character-set=latin1 DB_NAME > DB_NAME-dump.sql
mysql -h DB_HOST -u DB_USER -p DB_PASSWORD \
--default-character-set=utf8 DB_NAME < DB_NAME-dump.sql
Mas isso não ajuda, pois os dados nos arquivos .sql e no novo banco de dados são UTF-8 ilegíveis