MySQL 8 heeft de standaardtekenset gewijzigd in utf8mb4. Maar sommige klanten kennen deze tekenset niet. Dus wanneer de server zijn standaardtekenset aan de client rapporteert, en de client weet niet wat de server bedoelt, geeft hij deze fout.
Zie ook https://bugs.mysql.com/bug.php?id=71606
Die bug is tegen de MySQL Connector/C++, dus het is van invloed op meer dan alleen PHP.
Oké, ik heb het werkend gekregen door de tekenset te wijzigen in utf8, zodat het compatibel is met niet-geüpgradede clients. Ik heb dit toegevoegd aan /etc/my.cnf en mysqld opnieuw gestart:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
Ik vond deze instellingen in een antwoord uit 2010:Standaard MySQL-tekenset wijzigen in UTF-8 in my.cnf?