Facendola semplice: presupponiamo che il vostro db si chiami dbname
ed è codificato come latin1
ma voi volete convertirlo in utf8
in quanto è ovviamente compatibile con più caratteri, le due query in questione sono:
SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "dbname"; ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
Se poi volete provare (mi raccomando fate un backup di tutto) a convertire ogni singola tabella… beh ecco a voi questo bello script:
sudo mysql -u root -p --database=dbname -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql -u root -p --database=dbname
C’è una bella probabilità che non funzioni e che vi riporti errore o rimanga fermo. Nel caso stoppatelo con il solito ctrl+c
e provate in qualche altro modo ad effettuare la conversione.