修改数据库字符集

 

u  不能直接用ALTER DATABASE CHARACTER SET xxx进行字符集的修改,这样原有数据会乱码的。

u  对于已有数据的字符集调整,需要先导出数据,调整字符集后在导入

 

         总结

                   常用字符集

                            ASCII

                            ISO-8859-1

                            GB2312

                            GBK

                            UTF-8

 

MySQL的字符集选择

         字符集选择:

         支持国际化:选择Unicode字符集,目前就是UTF-8

         中文数据量大:GBK

         校对规则选择:

         基本上都是使用默认的校对规则。

 

         MySQL字符集设置

         4个级别的默认设置:

         服务器级

         可在my.ini中设置(Linuxmy.cnf):

                                               - [mysqld]

                                                default-character-set=gbk

默认校对规则使用该字符集的校对规则。

- 显示当前服务器的字符集SHOW VARIABLES LIKE 'character_set_server';

- 显示当前服务器的校对规则: SHOW VARIABLES LIKE 'collation_server';

         数据库级

         创建数据库的时候指定,也可以用ALTER DATABASE修改。

         没有指定时,使用服务器的字符集和校对规则。

         表级

         创建表的时候指定,也可用ALTER TABLE修改。

         没有指定时,使用数据库的字符集和校对规则。

         列级

         很少使用。                      

 

         MySQL连接字符集

         在实际的应用程序访问过程中,还需要设置连接字符集。对于客户端和服务器的交互操作,还提供了3个不同的参数:                  

         character_set__client:    客户端的字符集

         character_set_connection:     连接的字符集

         character_set_results:   返回结果的字符集

         通常这三个字符集是要相同的,才能保证数据的正确性。

 

         客户端访问MySQL服务器的过程

         client发送一个查询:服务器收到查询,将查询串从character_set_client转换到character_set_client转换到character_set_connection,然后执行查询;服务器将结果数据转换到character_set_results字符集后发送回客户端。

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

 

设置变量character_set__clientcharacter_set_connection:

需要在mysql>中进行设置,如下:

Set character_set__client=gbk;

Set character_set_connection=gbk;

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值