MySql之数据库编码

使用MySQL创建的数据库的默认字符集是latin1,这经常会导致在编运行中报错,类似于(1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
之前没有接触过MySQL,最近遇到过这种情况,特记录于此。

使用指定编码创建数据库

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的命令行中输入

>>USE database
>>STATUS

就可以得到数据库的编码信息

Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8

修改数据库的默认编码

alter database superset CHARACTER SET utf8

你可能感兴趣的:(mysql,encoding)