【问题标题】:Grails and default mysql encodingGrails 和默认的 mysql 编码
【发布时间】:2014-08-07 18:52:48
【问题描述】:

我想配置运行 MYSQL 的 Grails 应用程序,以将数据库及其表设置为 utf-8。我怎样才能做到这一点?

这是我的DataSource.groovy

environments {
    development {
        dataSource {
            dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
            driverClassName = 'com.mysql.jdbc.Driver'
            username = 'login'
            password = 'password'
            url = "jdbc:mysql://127.0.0.1:3306/database?autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8"
            dialect = org.hibernate.dialect.MySQL5InnoDBDialect
        }
    }
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
        }
    }
    production {
        dataSource {
            dbCreate = "update"            
            driverClassName = 'com.mysql.jdbc.Driver'
            username = 'login'
            password = 'password'
            url = 'jdbc:mysql://localhost:3306/database?autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8'
            dialect = org.hibernate.dialect.MySQL5InnoDBDialect
            properties {
                validationQuery="select 1"
                testWhileIdle=true
                timeBetweenEvictionRunsMillis=900000
            }
        }
    }
}

但是grails总是用latin1创建数据库和表

如何让 Grails 应用程序创建 utf-8 编码的数据库和表?

【问题讨论】:

    标签: mysql grails encoding


    【解决方案1】:

    试试这个

    url="jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=UTF-8"
    

    如果仍然出现错误,则将数据库创建为

    CREATE DATABASE database CHARACTER SET utf8 COLLATE utf8_general_ci;
    

    【讨论】:

    • 已经测试过了,我只是把useUnicode=true 传到useUnicode=yes 再发到这里。似乎是你我之间的唯一区别。删除 autoReconnect=true 会改变什么吗?
    • 在我的一个项目中,我们为 mysql 控制台创建了数据库广告 CREATE DATABASE database CHARACTER SET utf8 COLLATE utf8_general_ci;,并在 DataSource 中有 url="jdbc:mysql://localhost/database?useUnicode=true&characterEncoding=UTF-8",它正在工作。也可以试试 localhost。
    • 创建数据库的方式没问题。所以这必须在创建数据库时完成,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-10-18
    • 2017-07-10
    • 1970-01-01
    • 2016-01-02
    • 2014-09-07
    • 2015-05-22
    • 2011-01-21
    • 2022-01-09
    相关资源
    最近更新 更多