mysql对中文支持的配置
1,创建table的时候就使用utf8编码(推荐)
create table entries2 (
id int auto_increment,
title text,
content text,
posted_on datetime,
primary key (id)
) character set = utf8;
2,修改已经有的table的编码
当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:
alter table table_name convert to character set utf8;
3,修改table中一个column的编码
这个我目前还没发现需要在实际中使用到,但是测试了很多次,语句如下:
alter table entries modify title mediumtext character set utf8;
其中entries是我的table名,title是我要修改的column字段,mediumtext是title的类型。
即使是修改table某个字段的编码,也没有做到让之前的乱码变成中文。
4,如何查看一个database,一个table的编码
查看database的编码,假如database名字为webpy:
show create database webpy;
查看一个table的编码,假如table名为entries2:
show create table entries2;
5,修改mysql的配置文件,让mysql默认编码为utf8(不推荐)
在我的ubuntu机器上,mysql的配置目录为/etc/mysql
而我们mysql使用的配置文件为
/etc/mysql/my.cnf
我们可以直接加在my.cnf中,当然为了方便移植可复用,也可以如下写在独立的配置文件中。
在my.cnf最后又include了 conf.d/ 下面所有的*.cnf文件,所以我们就在conf.d/下面加上一个我们自己的配置文件wy_sql.cnf
添加如下两行
[mysqld]
character-set-server=utf8
再创建表的时候默认编码就是utf8了。
6, 显示的问题(推荐)
上面改了服务器的字符编码,但是如果不改client的,在终端上显示的还是???
还需要在配置文件中加上
[client]
default-character-set=utf8
通过
show variables like '%char%'
查看
7, 直接在mysql中使用 set 设置 变量(不推荐)
上面我们用show 查看了一些变量的值
那么可以直接用set来设置,但是这是临时的,下次启动后还是以配置文件的为准
set character_set_result = utf8;

浙公网安备 33010602011771号