grails 表排序规则 latin_swedish_ci 虽然 db 排序规则是 utf8_general_ci
Posted
技术标签:
【中文标题】grails 表排序规则 latin_swedish_ci 虽然 db 排序规则是 utf8_general_ci【英文标题】:grails table collation latin_swedish_ci although db collation is utf8_general_ci 【发布时间】:2015-10-09 16:32:50 【问题描述】:我使用默认排序规则 utf8_general_ci 为我的 grails 项目创建了一个数据库,但现在我发现 grails 使用 latin_swedish_ci 创建了所有表。
为什么会这样?如何强制 grails 使用 utf8?
在其他主题中,我发现我需要在 db 连接字符串中添加一些参数,但我已经这样做了。这是我的数据源:
dataSource
dialect = "org.hibernate.dialect.mysql5InnoDBDialect"
driverClassName = "com.mysql.jdbc.Driver"
username = "root"
password = ""
url = "jdbc:mysql://localhost:3306/xxx?autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8"
【问题讨论】:
也许有人对这个问题有任何想法? 4 年后我们遇到了同样的问题。 【参考方案1】:我的数据源看起来完全一样,并且我的表的排序规则设置为 'utf8_general_ci' 。我的印象是,这需要在数据库服务器本身中配置,通常或每个数据库。
表单将涉及将以下内容添加到您的 my.cnf 文件中:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
请参阅https://dev.mysql.com/doc/refman/5.6/en/charset-applications.html 了解更多信息。
不过,我通常会做后者。我使用以下语法来创建我的数据库:
DROP DATABASE IF EXISTS $DB_NAME;
CREATE DATABASE $DB_NAME DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
【讨论】:
以上是关于grails 表排序规则 latin_swedish_ci 虽然 db 排序规则是 utf8_general_ci的主要内容,如果未能解决你的问题,请参考以下文章