MySQL 8 ändrade standardteckenuppsättningen till utf8mb4. Men vissa klienter känner inte till denna teckenuppsättning. När servern därför rapporterar sin standardteckenuppsättning till klienten, och klienten inte vet vad servern betyder, ger den detta fel.
Se även https://bugs.mysql.com/bug.php?id=71606
Det felet är mot MySQL Connector/C++ så det påverkar mer än bara PHP.
Okej – jag fick det att fungera genom att ändra teckenuppsättningen till utf8, för att vara kompatibel med icke-uppgraderade klienter. Jag la till detta i /etc/my.cnf och startade om mysqld:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
Jag hittade dessa inställningar i ett svar från 2010:Ändra MySQL standardteckenuppsättning till UTF-8 i my.cnf?