Om kolumnerna använder standardtabellteckenuppsättningen är det bara en fråga per tabell att konvertera:
ALTER TABLE t CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Om teckenuppsättningen är individuellt inställd på varje kolumn, AFAIK finns det inget sätt att göra det på alla kolumner i alla tabeller i databasen direkt i MySql, men du kan skriva ett litet program på ditt valfria språk som gör det.
Ditt program skulle fråga efter INFORMATION_SCHEMA.COLUMNS
tabellen och titta på CHARACTER_SET_NAME kolumn:
SELECT * FROM `INFORMATION_SCHEMA.COLUMNS`
WHERE TABLE_SCHEMA = 'dbname' AND CHARACTER_SET_NAME = 'latin1'
För varje resultatrad är det trivialt att syntetisera och köra en ALTER TABLE fråga på plats som ändrar teckenuppsättningen och sorteringen på lämpligt sätt:
ALTER TABLE t MODIFY col TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
I ovanstående fråga t , col och TEXT skulle vara värdena för TABLE_NAME , COLUMN_NAME och DATA_TYPE kolumner från INFORMATION_SCHEMA.COLUMNS resultatuppsättning.