linux下mysql字符集

昨天准备把项目部署到linux,在初始化项目数据库时碰到了烦人的字符集问题,刚开始忘记了设置,因为默认是latin1,所有中文都成了?,于是按照网上的方法更改了/etc/my.cnf里的字符设置utf8,在DOS下使用insert int 插入一条中文记录,发现还是乱码,写个测试类插入却发现无法插入,'\UX\WE\',似乎还是编码的问题,早上到MySQL官网上查资料,换了好几个配置的组合都没有解决问题,终于在drop database后重建才解决了插入中文失败的问题。

 

现在总结一下,官网的资料:http://dev.mysql.com/doc/refman/5.1/zh/charset.html#charset-server

服务器字符集和校对规则可以用作character_set_server和collation_server系统变量的值

数据库的字符集和校对规则可以用作character_set_database和 collation_database系统变量

-----------------------------------------------------------------------------------------------------------------------

当查询离开客户端后,在查询中使用哪种字符集?
服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。

服务器接收到查询后应该转换为哪种字符集?
转换时,服务器使用character_set_connection和collation_connection系统变量。它将客户端发送的查询从character_set_client系统变量转换到character_set_connection

character_set_results变量指示服务器返回查询结果到客户端使用的字符集。

对于mysql客户端,如果你希望使用与默认字符集不同的字符集,不需要每次启动时执行SET NAMES语句。可以在mysql语句行中或者选项文件中添加一个--default-character-set选项设置。例如,你每次运行mysql时,以下的选项文件设置把三个字符集变量修改为koi8r:
[mysql]
default-character-set=koi8r

 

 

--------------------------------------------为项目配置字符集-------------------------------------------
为项目配置MySQL的/dtc/my.cnf文件
[client]
default-character-set = gb2312 # 在XP下用putty登陆时select可显示中文

 

[mysqld]
default-character-set = utf8   # 项目环境为UTF8,一般linux环境也这么设置
#等于设置了character_set_database / character_set_server = utf8

 

[mysql]
default-character-set = gb2312 # XP下my.ini此项也这么设置,可以正常显示,影响以下三个设置
#等于设置了character_set_client character_set_connection character_set_results=gb2312

 

------------------------效果-------------------------------
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | gb2312                     |
| character_set_connection | gb2312                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | gb2312                     |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值