学习手册之MySQL服务器功能

来源:互联网 发布:淘宝联盟为什么要认证 编辑:程序博客网 时间:2024/04/27 20:37
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
9MySQL服务器功能
9.1MySQL支持哪些语言?

MySQLd可以用下列语言发出错误消息:捷克语、荷兰语、英语(缺省)、爱沙尼亚语、法语、德语、匈牙利、意大利语、挪威语。

启动MySQLd使用一种特定的语言,使用一个--language=lang或-Llang选项。例如:

shell>MySQLd--language=swedish

或:

shell>MySQLd--language=/usr/local/share/swedish

注意,所有语言的名称用小写字母指定。

语言文件位于(缺省的)'MySQL_base_dir/share/LANGUAGE/'。

为了更新错误消息文件,你应该编辑“errmsg.txt”文件并且执行下列命令生成“errmsg.sys”文件:

shell>comp_errerrmsg.txterrmsg.sys

如果你升级到一个更新的MySQL版本,记得要再次用新的“errmsg.txt”文件进行更新。
9.1.1用于数据和排序的字符集

缺省地,MySQL使用ISO-8859-1(Latin1)字符集。这是在美国和西欧使用的字符集。

字符集决定了在名字中允许什么字符和如何由SELECT语句的ORDERBY和GROUPBY子句排序。

通过给configure以--with-charset=charset选项,你可以在编译时改变字符集。见4.7.1快速安装概述。

为了把其他字符集加入MySQL,使用下列过程:
9.1.2增加一个新的字符集

1.为字符集选择一个名字,下面用MYSET表示。
2.在MySQL源代码分发中创造文件“strings/ctype-MYSET.c”。
3.研究一个现有的“ctype-*.c'文件,看需要定义什么。注意,你文件中的数组必须有类似于ctype_MYSET、to_lower_MYSET等等的名字。to_lower[]和to_upper[]是简单的数组,保存字符集每个成员相应的小写和大写字符。例如:

to_lower['A']shouldcontain'a'
to_upper['a']shouldcontain'A'

sort_order[]是一个映射,指出字符为了比较和排序目的应该如何定序。对于许多字符集,这与to_upper[]一样(意味着排序将忽略大小写)。MySQL将基于sort_order[character]值排序字符。ctype[]是一个位值的数组,一个元素对应一个字符。(注意,to_lower[]、to_upper[]和sort_order[]按字符定下标,但是ctype[]按字符值+1定下标。这是一个旧遗产以便能处理EOF)你能在“m_ctype.h”找到下列bitmask定义:

#define_U01/*Uppercase*/
#define_L02/*Lowercase*/
#define_N04/*Numeral(digit)*/
#define_S010/*Spacingcharacter*/
#define_P020/*Punctuation*/
#define_C040/*Controlcharacter*/
#define_B0100/*Blank*/
#define_X0200/*heXadecimaldigit*/

每个字符的ctype[]的入口应该是描述字符的适用的位模(bitmask)值的联合(union)。例如,'A'是一个大写字符(_U),同时是十六进制位(_X),这样ctype['A'+1]应该包含值:共5页  第1页    
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>