使用MySQL建立的数据库的默认字符集是latin1,这常常会致使在编运行中报错,相似于(1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
以前没有接触过MySQL,最近遇到过这种状况,特记录于此。html
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
关于MySQL默认的CHARACTER SET,详见官方文档10.1.2 Character Sets and Collations in MySQL
例(以utf8编码建立数据库):CREATE DATABASE db_name DEFAULT CHARACTER SET utf8
mysql
在MySQL的命令行中输入sql
>>USE database >>STATUS
就能够获得数据库的编码信息数据库
Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8
alter database superset CHARACTER SET utf8
编码