hibernate mysql 远程连接有关问题 字符编码
报错:Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
一个表中不同的字段使用不同的字符集,也是一个道理。
用SHOW CREATE TABLE table_name;可以看出具体的字符集设置。
解决方法:
将不同的字符集,转化成统一的字符集。
1.1 如果是windows版本的mysql,那么在安装的时候,系统就会提示用哪种编码。
如果安装的时候设置错误了,修改mysql安装目录下的my.ini文件:
[mysql]
default-character-set=utf8
...
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
配置好后,重启mysql。
1.2 如果是linux版本的mysql
修改mysql的配置文件,使数据库与服务器操作系统的字符集设置一致。
vi /etc/my.cnf 设置(如果没有发现这个文件,就新建1个)
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8 (增加的关键一句,使得数据库缺省以utf8存储)
当然,修改后,要重启数据库。(这样设置后对新建的数据库表才起作用)
然后重新将数据导入。