2015-07-20 26 views
0

我用默認排序規則utf8_general_ci爲我的grails項目創建了一個數據庫,但現在我發現grails使用latin_swedish_ci創建了所有表。grails table collat​​ion latin_swedish_ci雖然db整理是utf8_general_ci

這是爲什麼,我該如何強迫grails使用utf8?

在其他議題,我發現我需要在數據庫連接字符串添加一些參數,但我已經做到了。這是我的數據源:

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

我的數據源看起來完全一樣,我的表的排序規則設置爲'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;