grails table collat​​ion latin_swedish_ci虽然db collat​​ion是utf8_general_ci

时间:2015-07-20 13:57:30

标签: mysql database grails encoding collation

我使用默认排序规则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"
}

1 个答案:

答案 0 :(得分:0)

我的数据源看起来完全一样,我的表的排序规则设置为'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;