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