MySQL 8 ha cambiato il set di caratteri predefinito in utf8mb4. Ma alcuni clienti non conoscono questo set di caratteri. Quindi, quando il server segnala il suo set di caratteri predefinito al client e il client non sa cosa significa il server, genera questo errore.
Vedi anche https://bugs.mysql.com/bug.php?id=71606
Quel bug è contro MySQL Connector/C++, quindi colpisce più del semplice PHP.
Ok, l'ho fatto funzionare cambiando il set di caratteri in utf8, per essere compatibile con i client non aggiornati. L'ho aggiunto a /etc/my.cnf e riavviato mysqld:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
Ho trovato queste impostazioni in una risposta del 2010:Modificare il set di caratteri predefinito di MySQL su UTF-8 in my.cnf?