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
![](https://1.bp.blogspot.com/-v-cUlSlZQb4/XsztOPTxZmI/AAAAAAAACjg/MqSCR8N4z1QcwPNZpLH3Ry4CyKV_0Y9rQCK4BGAsYHg/s1200/Come%2Bconvertire%2Bun%2Bintero%2Bdatabase%2Bda%2Blatin1%2Ba%2Butf8.png)
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.