Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COER) 解决办法

在向mysql 插入中文的过程中,系统报错:

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COER)

这是由于mysql 默认的编码格式与存入的数据格式不一样导致的,解决办法:

打开mysql安装目录,里面有个my.ini文件,打开这个文件,里面有两处字符集的设置,默认是拉丁(latin1),建议你所想改的,如:utf8或gbk

打开my.ini 找到这两处地方修改:(如果想显示中文建议修改成gbk, 我之前尝试修改成utf8,结果在mysql中文还是显示乱码,改成gbk之后显示才正常)

[mysql]

default-character-set=gbk

...

# 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=gbk

修改完之后,重启mysql 服务,然后删除之前创建的库,重新创建新的库和表(创建库时指定编码:create database dbname default charset GBK (如果在my.ini文件中已经设置过新的编码格式,“default charset GBK” 可以不用写),创建好之后可以查看所建库的编码格式 mysql>:show create database dbname ;和查看表的编码格式:mysql>:show create table tablename

如果不想重建库不想重建表,可以对已经创建好的库和表的编码格式进行修改,

修改方式:

2.修改库的编码: ALTER DATABASE dbname DEFAULT CHARACTER SET gbk
3.修改表的编码:ALTER TABLE `testtable` DEFAULT CHARACTER SET gbk
4.修改字段的编码: 
ALTER TABLE `tablename` CHANGE  `name` VARCHAR( 45 ) CHARACTER SET gbk
是将MYSQL数据库tablename表中 "name"的字段编码改能够该为gbk
另外要保证在页面中传入的数据编码格式与数据库中的编码格式保持一致。


你可能感兴趣的:(Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COER) 解决办法)