免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 无风之谷

[讨论]MySQL运维----"诡异"的字符集问题(获奖名单已公布-2012-8-23) [复制链接]

论坛徽章:
3
射手座
日期:2013-10-12 12:01:59技术图书徽章
日期:2014-03-06 15:32:30技术图书徽章
日期:2014-03-06 15:42:47
发表于 2012-07-19 11:01 |显示全部楼层
回复 9# hbsycw

character_set_server=utf8  这个参数应该是mysql5.5版本的参数
default-character-set=utf8  这个默认是老版本 包括5.0 的参数   对吧? 呵呵!


   

论坛徽章:
3
射手座
日期:2013-10-12 12:01:59技术图书徽章
日期:2014-03-06 15:32:30技术图书徽章
日期:2014-03-06 15:42:47
发表于 2012-07-19 11:09 |显示全部楼层
关于字符集对数据查询的影响

(1)首先要明确客户端时候何种编码格式,这是最重要的(IE一般用utf8,命令行一般是gbk,一般程序是gb2312)
(2)数据库最好使用utf8格式,很简单,所有编码通吃。
(3)一定要保证connection字符集大于等于client字符集,不然就会信息丢失,比如latin1<gb2312<gbk<utf8。统一最好喽。呵呵!
为了适应不同的浏览器、客户端,可以修改character_set_results来以不同的编码显示中文字体,utf8是大方向,web应用还是倾向于使用utf8格式显示中文的。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2012-07-19 12:25 |显示全部楼层
支持一下,这个是好东西,要顶

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
发表于 2012-07-19 14:02 |显示全部楼层
回复 31# zzfzqq
character_set_server=utf8 这个是设置服务器的默认字符集的.
default-character-set=utf8  这个是设置mysql这个客户端连接字符集的.

请看
character_set_server=utf8
影响的状态是
| character_set_server     | utf8                          |

而default-character-set=utf8
影响的状态是
| character_set_client     | utf8                          |
| character_set_connection | utf8                          |
| character_set_results    | utf8                          |
   

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
发表于 2012-07-19 14:02 |显示全部楼层
回复 33# expert1

谢谢,有遇到过字符集相关的问题,欢迎交流.
   

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
发表于 2012-07-19 14:07 |显示全部楼层
回复 32# zzfzqq

1. IE等浏览器的字符集一般是自动识别的.默认情况下GB2312的多.
2. 数据中统一utf8,可以避免很多意外问题,不过统一使用utf8并不是最好的选择.原因之一是浪费存储空间.
3. 下面这三个保持一致比较好,可以减少相互转码带来的性能损耗.
character_set_client
character_set_connection
character_set_results

   

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
发表于 2012-07-19 14:13 |显示全部楼层
回复 21# hbsycw

请教 mysql_query 是什么意思?貌似不是mysql的语法
   

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
发表于 2012-07-19 14:14 |显示全部楼层
zhangshengdong 发表于 2012-07-18 14:01
我一般在导入导出操作sql语句,如下操作:

导出:

熟悉的话, 尽量避免使用默认配置.因为不好控制.

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
发表于 2012-07-19 14:18 |显示全部楼层
回复 26# chenyx
2. 如何更改字符集的设置?
   直接修改mysql的my.ini文件中的字符集键值
       default-character-set = utf8
       character_set_server = utf8

第2点需要注意:
default-character-set = utf8配置在[client],[mysql]模块下.
character_set_server = utf8配置在[mysqld]模块下.

   

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
发表于 2012-07-19 14:21 |显示全部楼层
回复 27# createrasd
强!真详细.

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP