# MySQL 5.7 Upgrade to MySQL 8 Errors - Warning: The following objects use the utf8mb3 character set

**URL:** <https://forums.percona.com/t/mysql-5-7-upgrade-to-mysql-8-errors-warning-the-following-objects-use-the-utf8mb3-character-set/26330>\
**Category:** MySQL & MariaDB\
**Created:** [November 2, 2023, 8:00pm UTC](https://forums.percona.com/t/mysql-5-7-upgrade-to-mysql-8-errors-warning-the-following-objects-use-the-utf8mb3-character-set/26330 "2023-11-02T20:00:45Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ChrisDK](https://avatars.discourse-cdn.com/v4/letter/c/a6a055/32.png) [@ChrisDK](https://forums.percona.com/u/ChrisDK)\
**Post date:** [November 2, 2023, 8:00pm UTC](https://forums.percona.com/t/mysql-5-7-upgrade-to-mysql-8-errors-warning-the-following-objects-use-the-utf8mb3-character-set/26330/1 "2023-11-02T20:00:45Z")

</div>

From our upgrade logs:

1. Usage of utf8mb3 charset  
Warning: The following objects use the utf8mb3 character set. It is  
recommended to convert them to use utf8mb4 instead, for improved Unicode  
support.  
More information:  
[https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html)

SCHEMA1 - schema’s default character set: utf8  
SCHEMA2 - schema’s default character set: utf8  
SCHEMA3 - schema’s default character set: utf8  
…  
SCHEMA1.table1.column1 - column’s default character set:utf8  
SCHEMA1.table1.column2 - column’s default character set:utf8  
SCHEMA1.table1.column3 - column’s default character set: utf8

What is the most efficient way to resolve this? Should we update at the schema level or the table level (Please provide example SQL statements)?

When we do update the charsets of schemas/tables does this mean the charsets are now a mix of utf8mb3 and utf8mb4 (the newer records being mb4)? Or, on updating a table or schema does all data get updated to mb4? When we convert a table what impact does this have on the DB, is this something we need downtime for? Also, what impact might this have on the applications reading/writing might they be incompatible with the newer character set?

What about other character sets such as latin1?

Any help is appreciated.  
Thanks.

---

<div class="post-metadata">

**Author:** ![matthewb](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/matthewb/32/34_2.png) [@matthewb](https://forums.percona.com/u/matthewb)\
**Post date:** [November 2, 2023, 11:49pm UTC](https://forums.percona.com/t/mysql-5-7-upgrade-to-mysql-8-errors-warning-the-following-objects-use-the-utf8mb3-character-set/26330/2 "2023-11-02T23:49:00Z")

</div>

Hello @ChrisDK,

> [@ChrisDK](#):
>
> What is the most efficient way to resolve this?

Alter each table and convert the columns and tables to use utf8mb4

> [@ChrisDK](#):
>
> on updating a table or schema does all data get updated to mb4?

All data will be converted to utf8mb4. You cannot have a mix within a column definition.

> [@ChrisDK](#):
>
> When we convert a table what impact does this have on the DB, is this something we need downtime for?

You can use [pt-online-schema-change](https://docs.percona.com/percona-toolkit/pt-online-schema-change.html) to make these ALTERs less impactful/online.

> [@ChrisDK](#):
>
> Also, what impact might this have on the applications reading/writing might they be incompatible with the newer character set?

Doubtful. Especially if you are not actually using any of the extended characters (ie: emojis)

---

<div class="post-metadata">

**Author:** ![ChrisDK](https://avatars.discourse-cdn.com/v4/letter/c/a6a055/32.png) [@ChrisDK](https://forums.percona.com/u/ChrisDK)\
**Post date:** [November 8, 2023, 3:25pm UTC](https://forums.percona.com/t/mysql-5-7-upgrade-to-mysql-8-errors-warning-the-following-objects-use-the-utf8mb3-character-set/26330/3 "2023-11-08T15:25:38Z")

</div>

> [@ChrisDK](#):
>
> What about other character sets such as latin1?

Hi Mathew,

Thanks so much for your response. Another question I had in the original post is regarding other character sets. Can these be left as-is? Latin1 for example.

---

<div class="post-metadata">

**Author:** ![matthewb](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/matthewb/32/34_2.png) [@matthewb](https://forums.percona.com/u/matthewb)\
**Post date:** [November 8, 2023, 4:16pm UTC](https://forums.percona.com/t/mysql-5-7-upgrade-to-mysql-8-errors-warning-the-following-objects-use-the-utf8mb3-character-set/26330/4 "2023-11-08T16:16:35Z")

</div>

You can leave things as latin1 but you run the risk of character set mismatch. Your app might connect to MySQL via utf8 (new default) and send utf8 encoded characters to MySQL. But your indexes will have been created in latin1. Somewhere an implicit conversion will have to take place. It’s better just to have everything utf8; no need to worry about conversions.
