Como asegurarte de que MySQL trabaje con UTF8

La primer cosa que hago al instalar MySQL es dejarlo listo para datos en UTF8.

En el archivo de configuración my.cnf cambiamos tanto el character-set del cliente y servidor.

[client]
default-character-set=utf8

[mysqld]
character-set-server = utf8

Después de reiniciar el servidor y conectarnos de nuevo podemos verificar que nuestra conexión este trabajando con UTF8 correctamente.

show variables like 'character_set%';
show variables like 'collation%';

Todos en UTF8, a excepción del binary

Esto hace que por defecto las conexiones trabajen con UTF8 pero también puedes cambiar la configuración de la conexión "al vuelo", con consultas como set names, set character set, etc.

Si ya tienes el problema de haber combinado diferentes tipos de caracteres, como el latin1 de defecto, y necesitas migrar Derek Sivers escribió sus experiencias hace un par de años, que siguen siendo oro puro.