1:Windows平台,因为Windows操作系统默认的是用了gb2312这个字符,而mysql在安装的时候,默认的是客户端和服务器都用了latin1,所以这就导致一个字符集和字符校验不匹配的问题,这个时候只需要找到mysql的配置文件my.ini 找到default-character_set ,把他的参数改成gb2312就可以了,一共有两个这样的参数,一个是对客户的,一个是服务器的,我一般建议是把服务器的设置成国际通用的字符utf8。
2: Linux平台,在Linux平台上安装mysql的时候,给于的自由度是很大的,你可以在安装选项./configure中找到数据库的字符设置(这个还要麻烦你自己看readme安装文件 ),这个时候最好是把字符设置成gbk,因为这个字符集也是Linux平台默认安装的中文字符集,然后在/etc下找到my.cnf文件(这个文件在安装mysql后要自己把他转移到/etc/下,除非你是rpm安装).需要注意的是Linux里的很多工具都是不支持中文的,哪怕是vi,你可以在startx后执行命令kwrite,来编译文件,这个图形变异软件有一个选项是可以把你所写的东西转换成任意的字符集,很不错。
查看表字符集
\G 的作用是将查到的结构旋转90度变成纵向
1.查看数据库结构
show create database 数据库名;
show create database db5;
show create database db5\G;
2.查看表的结构
desc 表名;
desc user;
show create table 表名;
show create table user;
show create table user\G;
3,查看字段编码
SHOW FULL COLUMNS FROM 表名;
SHOW FULL COLUMNS FROM user;
插入中文报错
1.修改配置文件
修改配置文件下次默认键数据库,表改为所修改的字符集
1)windows mysql
修改my.ini配置文件(mysql配置文件)
[mysqld]
character_set_server = utf8 #设置字符集
2)Linux mysql
修改/etc/my.cnf配置文件(mysql配置文件)
[mysqld]
character_set_server = utf8 #设置字符集
2.修改数据库字符集
alter database 数据库名 character set utf8;
ps:修改完数据库字符集,需要重启mysql数据库。
3.修改表字符集
alter table 表名 default character set 字符集名 COLLATE 字符集支持模块;
alter table category default character set utf8 COLLATE utf8_general_ci;
4.修改字段字符集
alter table 表名 modify 字段名 字段类型 character set 字符集类型;
alter table users modify username char(20) character set utf8;