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;


 

posted @ 2017-06-13 10:30  malcome  阅读(38)  评论(0)    收藏  举报