Mysql中如何设置字符集

这篇文章将为大家详细讲解有关MySQL中如何设置字符集,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联公司是一家专注于成都做网站、成都网站建设与策划设计,呼图壁网站建设哪家好?创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:呼图壁等地区。呼图壁做网站价格咨询:18982081108


####################################
DROP TABLE test_var;
CREATE TABLE test_var(NAME VARCHAR(5)) CHARACTER SET utf8;
INSERT INTO test_var(NAME) VALUES('一路上有你'); --successful
INSERT INTO test_var(NAME) VALUES('一路上有你们'); --Data too LONG FOR COLUMN 'name' AT ROW 1
INSERT INTO test_var(NAME) VALUES(',,,,,');-- successful
INSERT INTO test_var(NAME) VALUES(',,,,,,'); --6个符号失败
SELECT * FROM test_var;
######################################
当然所有的前提是字符集设置正确了,才能正确insert。
在创建表的时候,因为没有指定字符集utf8,而采用了数据库默认的字符集latin1,我客户端的字符集是utf8,
在进行client->connection->server的字符集转换,即utf8->latin1->latin1转换,在第一个转换时便有了乱码,那么在insert的时候报了乱码错误。
#######################################
由于后台前端都是采用了utf8字符集,所以建议数据库也采用utf8字符集。
为此我们需要修改数据库默认的字符集。
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
修改MySQL字符集
1、修改服务器级别字符集


a.临时修改
mysql>SET GLOBAL character_set_server=utf8;


b.永久修改
打开/etc/mysql/my.cnf,在[mysqld]后添加character-set-server=utf8


2、修改数据库级 
a. 临时更改
mysql>SET GLOBAL character_set_database=utf8;


b. 永久更改
改了服务器级就可以了


3、修改表级 
mysql>ALTER TABLE table_name DEFAULT CHARSET utf8; 更改了后永久生效


4、修改列级修改示例
mysql>ALTER TABLE `products` CHANGE `products_model` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; 更改了后永久生效 


5、更改连接字符集
a. 临时更改:mysql> SET GLOBAL character_set_client;


b. 永久更改:打开/etc/mysql/my.cnf,在[client]后添加default-character-set=utf8


Notice:3.1和3.5需要重启mysql:   service mysql restart
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
字符集的概念
基本概念


@字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等;
@给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符’A'赋予数值0,给字符’B'赋予数值1,则0就是字符’A'的编码;
@给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set)。例如,给定字符列表为{’A',’B'}时,{’A'=>0, ‘B’=>1}就是一个字符集;
@字符序(Collation)是指在同一字符集内字符之间的比较规则;
@确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系;
@每个字符序唯一对应一种字符集,但一个字符集可以对应多种字符序,其中有一个是默认字符序(Default Collation);
@MySQL中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码值比较)结尾。例如:在字符序“utf8_general_ci”下,字符“a”和“A”是等价的;

关于Mysql中如何设置字符集就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


名称栏目:Mysql中如何设置字符集
转载来源:http://cdiso.cn/article/gcioij.html

其他资讯