How to Upgrade from MySQL 5.7 to 8.0
Mar 24, 2023JD Lien

Summary
This post details the process of upgrading from MySQL 5.7 to 8.0, covering character set changes (utf8mb4, utf8mb4_0900_ai_ci), obsolete data types (YEAR(2), ENUM, TINYTEXT/MEDIUMTEXT/LONGTEXT), authentication changes (caching_sha2_password), new reserved words, SQL mode changes (ONLY_FULL_GROUP_BY, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION), C-style operator deprecation (&&, ||, !), and server error code changes. It also introduces a zero-downtime upgrade path using PlanetScale's import tool, which acts as a replica during the migration and automatically handles the upgrade to 8.0. The post emphasizes the importance of performing this upgrade before the end-of-life for MySQL 5.7.