Jak zmienić wszystkie tabele w bazie danych na zestaw znaków UTF8?

Moja baza danych nie jest w UTF8 i chciałbym przekonwertować wszystkie tabele na UTF8, Jak mogę to zrobić?

Author: Sam, 2010-01-28

4 answers

Dla pojedynczego stołu możesz zrobić coś takiego:

ALTER TABLE tab CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Dla całej bazy danych nie znam innej metody niż podobna do tej:

Http://www.commandlinefu.com/commands/view/1575/convert-all-mysql-tables-and-fields-to-utf8

 38
Author: Tomasz Zielinski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-27 21:24:20
mysqldump --user=username --password=password --default-character-set=latin1 --skip-set-charset dbname > dump.sql
sed -r 's/latin1/utf8/g' dump.sql > dump_utf.sql
mysql --user=username --password=password --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql --user=username --password=password --default-character-set=utf8 dbname < dump_utf.sql
 12
Author: nubela,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-27 21:21:59

Zastąp my_database_name nazwą bazy danych

Wybierz CONCAT('ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;') z information_schema.TABLES WHERE TABLE_SCHEMA = 'my_database_name';

To zbuduje wiele zapytań, które można uruchomić

 6
Author: Thu 01 Jan 1970 000000 GMT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-19 13:46:30
 1
Author: Sarfraz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-27 21:22:09