Solution: 1
In MySQL 8, the default charset was changed to utf8mb4. Some older clients don’t recognize this charset, so when the server reports it, the client fails to understand and throws an error.
Reference: MySQL Bug Report #71606
(This bug is filed against the MySQL Connector/C++, but the issue affects more than just PHP.)
I resolved the issue by switching to utf8 for compatibility with non-upgraded clients. Here’s what I added to /etc/my.cnf, then restarted mysqld:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
I originally found these settings in a 2010 answer: Change MySQL default character set to UTF-8 in my.cnf?