MySQL 8, cambio de codificación de caracteres de latin1 a utf8mb4

MySQL 5.7 definía por defecto la codificación de caracteres latin1, mientras que MySQL 8 lo cambia a utf8mb4, esto no significa que la primera no se pueda utilizar, podrás seguir usando cualquier codificación de caracteres que el proyecto requiera.

Este cambio no supone mayor problema dado que las aplicaciones definen el charset a usar en la capa de conexión a MySQL, pero podría ocurrir en aplicaciones muy antiguas o desarrollos propios que esto no suceda, y, por lo tanto, tras el cambio se detecte que los datos aparecen en pantalla con caracteres "extraños".

La solución es muy sencilla, simplemente habría que añadir una secuencia SQL para cambiar el charset defecto, concretamente SET NAMES 'latin1', esto se haría tras seleccionar la base de datos.

Si por ejemplo tenemos:

mysql_select_db($db, $connection);

Deberemos añadir justo después:

mysql_select_db($db, $connection);
mysql_query("SET NAMES 'latin1'", $connection);