giovedì 30 gennaio 2020

Server sent charset unknown to the client - mysql8

Esperienza vissuta durante installazione e configurazione di mysql8 su windows 7



Se stai cercando di interrogare un database su mysql8 da php, ma durante la fase di connessione al server ottieni il seguente errore:

"Server sent charset unknown to the client"... 

significa che mysql8 è configurato con un charset utf8mb4

per poterti connettere devi riconfigurare il charset a utf8 e cercando in rete si trovano consigli su come procedere, e in realtà è abbastanza semplice.

Basta aggiungere queste righe al file di configurazione di mysql (my.ini) che in una installazione standard su windows si trova in : C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8


purtoppo però, e questo l'ho provato sulla mia pelle, una volta modificato il file my.ini con notepad e fermato il servizio mysql, al tentativo di riavvio, questo non riparte più. 

nemmeno se si prova cancellare le linee aggiunte al file si riesce più a far ripartire il servizio.

Dilemma...

Il problema è notepad.

Infatti all'interno del file originale my.ini c'è la seguente riga:

# range from 1 to 2^32 − 1. “Unique” means that each ID must be different 

che contiene 3 caratteri  speciali che nel momento in cui viene salvato il file, creano un problema che impedisce il riavvio di mysql.

Per ovviare al problema, basta: cancellare la linea incriminata (tanto è un commento, non serve a nulla se non a dare un spiegazione) modificare il file aggiungendo le linee indicate sopra, e poi usare l'opzione "save as..." o "salva con nome..." andando poi a scegliere l'opzione ANSI nella select.


In questo modo il file salvato è formalmente corretto e sarà visto correttamente da mysql.

fermate il servizio Mysql, chiudete il workbach se lo state usando, riaprite workbach e riavviate il servizio mysql.

Tutto fatto.


ho trovato soluzioni e consigli ai seguenti indirizzi:

https://superuser.com/questions/1421016/mysql-8-0-starts-and-stops-after-my-ini-saved-or-edited-in-windows-10
https://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnf
https://bugs.mysql.com/bug.php?id=85946



Nessun commento:

Posta un commento