向数据表中插入中文时,会报错1366,数据表不支持中文显示。
解决办法:
1.创建数据表时,指定引擎,指定字符集编码;
ENGINE=InnoDB DEFAULT CHARSET=utf8
mysql> CREATE TABLE persion(
-> id INT NOT NULL AUTO_INCREMENT,
-> name VARCHAR(100) NOT NULL,
-> age INT NOT NULL,
-> PRIMARY KEY ( id )
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.修改字符集:
查看mysql的字符集:
show variables where Variable_name like '%char%';
查看数据库的字符集:
show create database 数据库;
查看数据表的字符集:
show create table 数据表;
修改mysql的字符集:
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;
mysql> set collation_database=utf8;
mysql> set collation_server=utf8;
修改数据库的字符集:
alter database 数据库 character set utf8
修改数据表的字符集:
alter table 数据表 character set utf8
修改字段的字符集:
alter table 数据表 change name name char(10) character set utf-8;