【发布时间】:2011-10-14 05:16:14
【问题描述】:
我有一个从损坏的数据库中提取的数据库转储,我需要将其导入到全新安装中。但是,原来的数据库似乎已经设置为使用 utf8_unicode_ci。
当将此转储导入干净的数据库时,所有数据库都是使用默认的 utf8_general_ci 创建的,这会为我提供包括 ß 在内的单词的重复条目,因为一般会生成 'ß' == 's',而 utf8_unicode_ci 应该有 'ß' == 'ss'。
但是,在导入mysql时,创建表时似乎总是选择默认的utf8_general_ci,即使我将数据库(架构)默认设置为utf8_unicode_ci。
有没有办法强制它使用 utf8_unicode_ci 创建表,而不必在我的转储中注入 alter table 语句?它有几 GB 大小,手动修改会很痛苦。
在系统范围内配置 MySQL 很好。
我试过设置:
collation-server=utf8_unicode_ci
在 my.cnf 中,但这似乎没有为表创建设置默认排序规则。
【问题讨论】:
-
不,我正在使用命令行导入,
mysql db_name < dbdump.sql