mysql支持中文设置
2017-06-22 13:57
369 查看
转载自:mysql支持中文设置
1,创建table的时候就使用utf8编码
举个例子:
在每次创建表的时候都在最后加上
character set = utf8
就可以很好的支持中文。
2,修改已经有的table的编码
当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:
此后再往这个table插入中文的时候,就可以正常存储和读取了,但不知道为什么之前的乱码还是不能纠正,只能新插入的数据没有问题。
[注意] 我google了一下,有些地方说这个命令也行,但是我测试以后并不行
修改table编码前:
修改为utf8后并插入一行数据:
可以看到已支持中文,但之前的3行还是没有改变。
3,修改table中一个column的编码
这个我目前还没发现需要在实际中使用到,但是测试了很多次,语句如下:
其中entries是我的table名,title是我要修改的column字段,mediumtext是title的类型。
即使是修改table某个字段的编码,也没有做到让之前的乱码变成中文。
4,如何查看一个database,一个table的编码
查看database的编码,假如database名字为webpy:
查看一个table的编码,假如table名为entries2:
效果如下,其实表中每个字段编码都是utf8,表的default的utf8的,所以没有单独显示每个字段的。
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
添加如下两行
再创建表的时候默认编码就是utf8了。
6, 显示的问题
上面改了服务器的字符编码,但是如果不改client的,在终端上显示的还是???
还需要在配置文件中加上
通过
show variables like '%char%'
可以查看
和编码 "character" , 有关的变量
7, 直接在mysql中使用 set 设置 变量
上面我们用show 查看了一些变量的值
那么可以直接用set来设置,但是这是临时的,下次启动后还是以配置文件的为准
1,创建table的时候就使用utf8编码
举个例子:
1 create table entries2 ( 2 id int auto_increment, 3 title text, 4 content text, 5 posted_on datetime, 6 primary key (id) 7 ) character set = utf8;
在每次创建表的时候都在最后加上
character set = utf8
就可以很好的支持中文。
2,修改已经有的table的编码
当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:
alter table table_name convert to character set utf8;
此后再往这个table插入中文的时候,就可以正常存储和读取了,但不知道为什么之前的乱码还是不能纠正,只能新插入的数据没有问题。
[注意] 我google了一下,有些地方说这个命令也行,但是我测试以后并不行
alter table table_name charset=utf8; #这个语句并没有让table_name支持中文
修改table编码前:
修改为utf8后并插入一行数据:
可以看到已支持中文,但之前的3行还是没有改变。
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;
效果如下,其实表中每个字段编码都是utf8,表的default的utf8的,所以没有单独显示每个字段的。
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%'
可以查看
和编码 "character" , 有关的变量
Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ |
7, 直接在mysql中使用 set 设置 变量
上面我们用show 查看了一些变量的值
那么可以直接用set来设置,但是这是临时的,下次启动后还是以配置文件的为准
set character_set_result = utf8;
相关文章推荐
- mysql中文字符支持设置
- proxool 最简单的设置mysql 支持 中文的方式
- Linux(centos7heUbuntu16.04)下设置MySQL支持中文
- MySQL5.5+winXP,字符集设置utf8,好像不能支持中文
- Linux(centos7heUbuntu16.04)下设置MySQL支持中文
- Google官方关于Gmail 语言设置的声明(Gmail支持中文 Gmail设置中文)
- MySQL ODBC 中文设置
- mysql不支持中文的解决方法
- 为什么我的 Mysql 不支持中文查询?
- 中文参考手册---16MySQL对ODBC的支持
- mysql 中文支持
- MySQL免安装版中文字符集设置
- 让MYSQL彻底支持中文
- 让服务器支持中文文件名下载的设置方法
- 英文版Windows XP的中文支持设置
- Mysql怎么样支持中文查询
- mysql安装图解(详细步骤),配置,相关图形工具介绍及使用,中文支持
- [转载]MySQL 全文搜索中文支持
- mysql 中文支持
- 设置tomcat 让其支持中文