?? manual_server.html
字號:
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title>MySQL中文參考手冊- 9 MySQL服務器功能</title>
<style type="text/css">
<!--
.p13{font-size:14.8px;font-family:宋體;}
.p14{font-size:14.8px;font-family:宋體;line-height:14pt;}
.bc{ background-color: rgb(255,255,132) ;font-size:9pt;font-family:宋體;line-height:14pt;}
.pt{font-size:14.8px;font-family:宋體;line-height:14pt; background-color: rgb(255,255,132) }
a:hover{color:red;}
a.t1:visited{color:red;}
-->
</style>
</head>
<body BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#101090" VLINK="#7030B0" class="p4">
<h1><img src="Img/mysql-logo.gif" alt="mysql-logo.gif (3082 bytes)" WIDTH="127" HEIGHT="60"><font color="#FF0000">MySQL中文參考手冊</font></h1>
<p>譯者:晏子 <a href="mailto:(clyan@sohu.com">(clyan@sohu.com</a>)
主頁:<a href="http://linuxdb.yeah.net">http://linuxdb.yeah.net</a></p>
<hr>
<p><a HREF="manual_Introduction.html">第一章</a>, <a HREF="manual_Tutorial.html">前一章</a>,
<a HREF="manual_Performance.html">下一章</a>, <a HREF="manual_Concept_Index.html">最后一章</a>,<a HREF="manual_toc.html">目錄</a>. </p>
<hr>
<h1><a NAME="Server" HREF="manual_toc.html#Server">9 MySQL服務器功能</a><a NAME="IDX605"></a> </h1>
<h2><a NAME="Languages" HREF="manual_toc.html#Languages">9.1 MySQL支持哪些語言?</a></h2>
<p><code>mysqld</code>可以用下列語言發(fā)出錯誤消息:捷克語、荷蘭語、英語(缺省)、愛沙尼亞語、法語、德語、匈牙利、意大利語、挪威語。
</p>
<p>啟動<code>mysqld</code>使用一種特定的語言,使用一個<code>--language=lang</code>或<code>-L
lang</code>選項。例如: </p>
<pre>shell> mysqld --language=swedish
</pre>
<p>或: </p>
<pre>shell> mysqld --language=/usr/local/share/swedish
</pre>
<p>注意,所有語言的名稱用小寫字母指定。 </p>
<p>語言文件位于(缺省的)<tt>'<var>mysql_base_dir</var>/share/<var>LANGUAGE</var>/'</tt>。
</p>
<p>為了更新錯誤消息文件,你應該編輯<tt>“errmsg.txt”</tt>文件并且執(zhí)行下列命令生成<tt>“errmsg.sys”</tt>文件:
</p>
<pre>shell> comp_err errmsg.txt errmsg.sys
</pre>
<p>如果你升級到一個更新的<strong>MySQL</strong>版本,記得要再次用新<tt>的“errmsg.txt”</tt>文件進行更新。
</p>
<h3><a NAME="Character_sets" HREF="manual_toc.html#Character_sets">9.1.1
用于數(shù)據(jù)和排序的字符集</a></h3>
<p>缺省地,<strong>MySQL</strong>使用 ISO-8859-1 ( Latin1 )
字符集。這是在美國和西歐使用的字符集。 </p>
<p>字符集決定了在名字中允許什么字符和如何由<code>SELECT</code>語句的<code>ORDER
BY</code>和<code>GROUP BY</code>子句排序。 </p>
<p>通過給<code>configure</code>以<code>--with-charset=charset</code>選項,你可以在編譯時改變字符集。見<a HREF="manual_Installing.html#Quick_install">4.7.1 快速安裝概述</a>。 </p>
<p>為了把其他字符集加入<strong>MySQL</strong>,使用下列過程: </p>
<h3><a NAME="Adding_character_set" HREF="manual_toc.html#Adding_character_set">9.1.2
增加一個新的字符集</a></h3>
<ol>
<li>為字符集選擇一個名字,下面用<code>MYSET</code>表示。 </li>
<li>在<strong>MySQL</strong>源代碼分發(fā)中創(chuàng)造文件<tt>“strings/ctype-MYSET.c”</tt>。
</li>
<li>研究一個現(xiàn)有的<tt>“ctype-*.c'</tt>文件,看需要定義什么。注意,你文件中的數(shù)組必須有類似于<code>ctype_MYSET</code>、<code>to_lower_MYSET</code>等等的名字。<code>to_lower[]</code>和<code>to_upper[]</code>是簡單的數(shù)組,保存字符集每個成員相應的小寫和大寫字符。例如:
<pre>to_lower['A'] should contain 'a'
to_upper['a'] should contain 'A'</pre>
<p><code>sort_order[]</code>是一個映射,指出字符為了比較和排序目的應該如何定序。對于許多字符集,這與<code>to_upper[]</code>一樣(意味著排序?qū)⒑雎源笮?。<strong>MySQL</strong>將基于<code>sort_order[character]</code>值排序字符。<code>ctype[]</code>是一個位值的數(shù)組,一個元素對應一個字符。(注意,<code>to_lower[]</code>、<code>to_upper[]</code>和<code>sort_order[]</code>按字符定下標,但是<code>ctype[]</code>按字符值+1定下標。這是一個舊遺產(chǎn)以便能處理EOF)
你能在<tt>“m_ctype.h”</tt>找到下列bitmask定義: </p>
<pre>#define _U 01 /* Upper case */
#define _L 02 /* Lower case */
#define _N 04 /* Numeral (digit) */
#define _S 010 /* Spacing character */
#define _P 020 /* Punctuation */
#define _C 040 /* Control character */
#define _B 0100 /* Blank */
#define _X 0200 /* heXadecimal digit */
</pre>
<p>每個字符的<code>ctype[]</code>的入口應該是描述字符的適用的位模(bitmask)值的聯(lián)合(union)。例如,<code>'A'</code>是一個大寫字符(<code>_U</code>)
,同時是十六進制位(<code>_X</code>),這樣<code>ctype['A'+1]</code>應該包含值:
</p>
<pre>_U + _X = 01 + 0200 = 0201
</pre>
</li>
<li>為你的字符集增加一個唯一的編號到<tt>“include/m_ctype.h.in”</tt>。 </li>
<li>把字符集名字加到在<code>configure.in</code>中的<code>CHARSETS_AVAILABLE</code>表。
</li>
<li>重新配置,重新編譯并且測試。 </li>
</ol>
<h3><a NAME="Multi-byte_characters" HREF="manual_toc.html#Multi-byte_characters">9.1.3
多字節(jié)字符支持</a></h3>
<p>如果你正在創(chuàng)建一個多字節(jié)字符集,你可以使用<code>_MB</code>宏。在<tt>“include/m_ctype.h.in”</tt>,增加:</p>
<pre>#define MY_CHARSET_MYSET X
#if MY_CHARSET_CURRENT == MY_CHARSET_MYSET
#define USE_MB
#define USE_MB_IDENT
#define ismbchar(p, end) (...)
#define ismbhead(c) (...)
#define mbcharlen(c) (...)
#define MBMAXLEN N
#endif
</pre>
<p>這里: </p>
<table BORDER="1" WIDTH="100%" NOSAVE="#101090" class="p4">
<tr>
<td><code>MY_CHARSET_MYSET</code> </td>
<td>一個唯一的字符集值。 </td>
</tr>
<tr>
<td><code>USE_MB</code> </td>
<td>這個字符集有多字節(jié)字符,由<code>ismbhead()</code>和<code>mbcharlen()</code>來處理。</td>
</tr>
<tr>
<td><code>USE_MB_IDENT</code> </td>
<td>(可選 ) 如果定義,你能使用多字節(jié)字符的表和列名。</td>
</tr>
<tr>
<td><code>ismbchar(p, e)</code> </td>
<td>如果<code>p</code>不是一個多字節(jié)字符字符串,返回0,否則如果它是,返回字符的大小(字節(jié)數(shù))。<code>p</code>和<code>e</code>指向字符串的開始和結束。檢查是從<code>(char*)p</code>到<code>(char*)e-1</code>。
</td>
</tr>
<tr>
<td><code>ismbhead(c)</code> </td>
<td>如果<code>c</code>是一個多字節(jié)字符字符串的第一個字符,返回真。</td>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -