我有一个grails web应用程序并使用Mysql,当我查询波斯语字符串时,我看到了这个错误:
echo '<td class="tab"><a href="#"><b>' . $row["marca"] . '</b></a></td>';
这是我的数据源配置:
ERROR util.JDBCExceptionReporter - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
我查询mysql变量(显示'collation%'等变量),结果如下:
dataSource {
driverClassName = "com.mysql.jdbc.Driver"
dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
username = "user"
password = "pass"
url = "jdbc:mysql://localhost/nicefamilytree?useUnicode=yes&characterEncoding=UTF-8"
}
我在命令下运行以更改数据库字符集:
mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
但是collation_server没有改变,我在查询中也有同样的错误。
答案 0 :(得分:1)
更改您的DataSourceConfig,如下所示:
dataSource {
driverClassName = "com.mysql.jdbc.Driver"
dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
username = "user"
password = "pass"
url = "jdbc:mysql://localhost/nicefamilytree?useUnicode=yes
}
不要做任何转换,只保存你得到的内容。
不确定是否有帮助!!