在我的数据库中,排序规则最初是utf8_general_ci。但是,我注意到utf8_unicode_ci是必要的,因为它具有更好的排序精度。
因此,我使用 phpmyadmin 导出了所有数据库,并检查了导出的 sql 文件中是否没有出现“COLLATION”一词(在一个设置为二进制的表中只有 2 次除外),所以通常这个脚本与排序规则无关,不应该暗示导入时的任何特定排序规则,但使用数据库默认值。
删除所有表后,数据库排序规则更改为utf8_unicode_ci,然后从 phpmyadmin 运行导入脚本。但结果,所有表和所有列都使用utf8_general_ci排序规则再次显示(并且排序不正确)。为什么??以及如何改变它?
PS 导出/导入脚本在开头包含注释行:
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
不知道导入的时候有没有影响,但是打开mysql控制台后,命令show variables like 'collation_connection'
显示 COLLATION_CONNECTION 为cp852_general_ci。但是,在 phpmyadmin->variables 中,变量 'collation_connection' 设置为utf8_general_ci。但是没有办法改变它。