?? manual_installing.html
字號(hào):
<p>為了安裝分發(fā),使用下面的命令之一, 這里<code>/path/to/depot</code>是倉(cāng)庫(kù)文件的完整路徑:
<ul>
<li>要安裝所有東西,包括服務(wù)器、客戶和開(kāi)發(fā)工具: <pre> shell> /usr/sbin/swinstall - s /path/to/depot mysql.full</pre>
</li>
<li>僅僅安裝服務(wù)器: <pre>shell> /usr/sbin/swinstall - s /path/to/depot mysql.server</pre>
</li>
<li>僅僅安裝客戶軟件包: <pre>shell> /usr/sbin/swinstall - s /path/to/depot mysql.client</pre>
</li>
<li>僅僅安裝開(kāi)發(fā)工具: <pre>shell> /usr/sbin/swinstall - s /path/to/depot mysql.developer</pre>
</li>
</ul>
<p>depot<tt>在“/opt/mysql”</tt>存放二進(jìn)制代碼和庫(kù)文件并在<tt>“/var/opt/mysql”</tt>存放數(shù)據(jù)。depot也在<tt>“/sbin/init.d”</tt>和<tt>“
/sbin/rc2.d”</tt>里創(chuàng)建適當(dāng)?shù)娜肟谝宰詣?dòng)地在引導(dǎo)時(shí)啟動(dòng)服務(wù)器。顯然,
這有必要以<code>root</code>身份來(lái)安裝。 </p>
<p>為了安裝HP-UX tar分發(fā),你必須有GNU <code>tar</code>的一個(gè)拷貝。</p>
<h2><a NAME="Installing_source" HREF="manual_toc.html#Installing_source">4.7 安裝MySQL源代碼分發(fā)</a></h2>
<p>你需要下列工具構(gòu)造并安裝<strong>MySQL</strong>源代碼:
<ul>
<li>GNU <code>gunzip</code>解壓縮該分發(fā)。 </li>
<li>一個(gè)合適的<code>tar</code>解包分發(fā)。GNU <code>tar</code>已知可以工作。 </li>
<li>一個(gè)能運(yùn)行的ANSI C++編譯器。<code>gcc</code>> = 2.8.1 、<code>egcs</code>>
= 1.0.2 、SGI C++和SunPro C++是一些已知能工作編譯器。 當(dāng)使<code>gcc</code>用時(shí),不需要<code>libg++</code>。gcc2.7.x
有一個(gè)bug,使得它可能不能編譯一些完全合法的C++文件,例如<tt>“sql/sql_base.cc”</tt>。如果你僅有<code>gcc</code>2.7.x,你必須升級(jí)<code>gcc</code>才能編譯<strong>MySQL</strong>。
</li>
<li>一個(gè)優(yōu)秀的<code>make</code>程序。GNU <code>make</code>總是被推薦且有時(shí)必須。如果你有問(wèn)題,我們推薦試一試GNU<code>
make</code>3.75或更新。 </li>
</ul>
<p>如果你遇到問(wèn)題,當(dāng)向<a HREF="mailto:mysql@lists.mysql.com">mysql@lists.mysql.com</a>郵寄問(wèn)題時(shí),<strong>請(qǐng)一直使用<code>mysqlbug</code></strong>。就算問(wèn)題不是一個(gè)bug,<code>mysqlbug</code>收集系統(tǒng)信息,將有助于其它人解決你的問(wèn)題。如果不使用<code>mysqlbug</code>,你減少得到關(guān)你問(wèn)題的一個(gè)解決方案的可能性!在你解包分發(fā)后,你會(huì)在<tt>“scripts”</tt>目錄下找到<code>mysqlbug</code>。見(jiàn)<a HREF="manual_Questions.html#Bug_reports">2.3 怎樣報(bào)告錯(cuò)誤或問(wèn)題</a>。 </p>
<h3><a NAME="Quick_install" HREF="manual_toc.html#Quick_install">4.7.1 快速安裝概述</a></h3>
<p>你必須執(zhí)行的安裝<strong>MySQL</strong>源代碼分發(fā)的基本命令是(從一個(gè)解包的<code>tar</code>文件):
</p>
<pre>shell>configure
shell>make
shell>make install
shell>scripts/mysql_install_db
shell>/usr/local/mysql/bin/safe_mysqld &
</pre>
<p>如果你從一個(gè)源代碼RPM開(kāi)始,那么執(zhí)行如下命令。 </p>
<pre>shell> rpm -- rebuild MySQL-VERSION.src.rpm</pre>
<p>這樣你制作一個(gè)可以安裝的二進(jìn)制RPM。 </p>
<p>如果你安裝<code>了DBI</code>和<code>Msql-Mysql-modules</code>Perl模塊,你可以利用<code>bin/mysql_setpermission</code>腳本增加新用戶。
</p>
<p>以下是更詳細(xì)的描述: </p>
<p>為了安裝源代碼分發(fā),按照下列步驟,然后繼續(xù)到<a HREF="manual_Installing.html#Post-installation">4.15 安裝后期的設(shè)置與測(cè)試</a>,進(jìn)行安裝后期的初始化與測(cè)試。
<ol>
<li>挑選一個(gè)你要在其下面解包分發(fā)的目錄,并且進(jìn)入該目錄。 </li>
<li>從節(jié)<a HREF="manual_Installing.html#Getting_MySQL">4.1 怎樣獲得MySQL</a>中列出的站點(diǎn)之一獲得一個(gè)分發(fā)文件。<strong>MySQL</strong>源代碼分發(fā)以壓縮的<code>tar</code>檔案提供,并且有類似于<tt>“mysql-VERSION.tar.gz”</tt>的名字,這里的<code>VERSION</code>是一個(gè)類似3.23.7-alpha的數(shù)字。
</li>
<li>在當(dāng)前目錄下解包分發(fā): <pre>shell> gunzip < mysql-VERSION.tar.gz | tar xvf -</pre>
<p>這個(gè)命令創(chuàng)建名為<tt>“mysql-VERSION”</tt>的一個(gè)目錄。 </p>
</li>
<li>進(jìn)入解包分發(fā)的頂級(jí)目錄: <pre>
shell> cd mysql-VERSION</pre>
</li>
<li>設(shè)置發(fā)行版本并且編譯: <pre>shell>./configure--prefix=/usr/local/mysql
shell>make
</pre>
<p>當(dāng)你運(yùn)行<code>configure</code>時(shí),你可能想要指定一些選項(xiàng),運(yùn)行<code>./configure
--help</code>得到一張選項(xiàng)表。<a HREF="manual_Installing.html#configure_options">4.7.3
典型<code>的configure</code>選項(xiàng)</a>討論一些很有用的選項(xiàng)。如果<code>configure</code>失敗,你將發(fā)送包含<tt>你認(rèn)為能幫你解決該問(wèn)題的“config.log”</tt>的郵件,如果<code>configure</code>異常退出,也要包括<code>configure</code>的最后幾行輸出。<code>用mysqlbug</code>腳本郵寄錯(cuò)誤報(bào)告。見(jiàn)<a HREF="manual_Questions.html#Bug_reports">2.3 怎樣報(bào)告錯(cuò)誤和問(wèn)題</a>。如果編譯失敗,見(jiàn)節(jié)<a HREF="manual_Installing.html#Compilation_problems">4.8 編譯問(wèn)題?</a>,幫助解決很多常見(jiàn)問(wèn)題。
</p>
</li>
<li>安裝所有東西: <pre>shell>make install</pre>
<p>你可能需要<code>root</code>用戶來(lái)運(yùn)行這個(gè)命令。 </p>
</li>
<li>創(chuàng)造<strong>MySQL</strong>授權(quán)表(只有你以前沒(méi)安裝<strong>MySQL</strong>是必需的):
<pre>shell>scripts/mysql_install_db</pre>
<p>注意,在運(yùn)行<code>mysql_install_db</code>時(shí),那些比3.22.10舊的<strong>MySQL</strong>版本啟動(dòng)<strong>MySQL</strong>服務(wù)器。現(xiàn)在不是這樣了!
</p>
</li>
<li>如果你想要安裝對(duì)Perl <code>DBI</code>/<code>DBD</code>接口的支持,見(jiàn)<a HREF="manual_Installing.html#Perl_support">4.10 Perl安裝注意說(shuō)明</a>。 </li>
<li>如果你想要<strong>MySQL</strong>在你引導(dǎo)機(jī)器時(shí)自動(dòng)地啟動(dòng),你可以拷貝<code>support-files/mysql.server</code>到你的系統(tǒng)中有啟動(dòng)文件的地方。更多的信息可以在<code>support-files/mysql.server</code>腳本里和<a HREF="manual_Installing.html#Automatic_start">4.15.3 自動(dòng)啟動(dòng)和停止MySQL</a>找到。
</li>
</ol>
<p>在所有東西安裝完以后,你應(yīng)該初始化并且測(cè)試你的分發(fā)。 </p>
<p>你可以用下列命令啟動(dòng)<strong>MySQL</strong>服務(wù)器,這里<code>BINDIR</code>是<code>safe_mysqld</code>被安裝的目錄(<tt>缺省為“/usr/local/bin</tt>”):
</p>
<pre>
shell> BINDIR/safe_mysqld &
</pre>
<p>如果這個(gè)命令提示<code>mysqld daemon ended</code>并馬上失敗,那么你能<tt>在文件“mysql-data-directory/'hostname'.err”</tt>找到一些信息。可能的原因是你已經(jīng)有另外一個(gè)<code>正在運(yùn)行的mysqld</code>服務(wù)器。見(jiàn)<a HREF="manual_Common_problems.html#Multiple_servers">19.3 在同一臺(tái)機(jī)器上運(yùn)行多個(gè)MySQL服務(wù)器</a>。
</p>
<p>參見(jiàn)<a HREF="manual_Installing.html#Post-installation">4.15
安裝后期的設(shè)置與測(cè)試</a>。 </p>
<h3><a NAME="Applying_patches" HREF="manual_toc.html#Applying_patches">4.7.2 運(yùn)用補(bǔ)丁</a></h3>
<p>有時(shí)補(bǔ)丁出現(xiàn)在郵件列表上或放在<strong>MySQL</strong> FTP地點(diǎn)的<a HREF="ftp://www.mysql.com/pub/mysql/Downloads/Patches">補(bǔ)丁區(qū)</a>。 </p>
<p>為了使用來(lái)自郵件列表的一個(gè)補(bǔ)丁,保存補(bǔ)丁出現(xiàn)在文件的消息,進(jìn)入你的<strong>MySQL</strong>源代碼樹(shù)的頂級(jí)目錄并運(yùn)行這些命令:
</p>
<pre>
shell>patch - p1 <patch-file-name
shell>rm config.cache
shell>make clean
</pre>
<p>來(lái)自FTP地點(diǎn)的補(bǔ)丁是作為普通文本文件或作為被壓縮了<code>的gzip</code>文件分發(fā)。運(yùn)用一個(gè)文本的補(bǔ)丁如上述郵件列表補(bǔ)丁,為了使用一個(gè)壓縮的補(bǔ)丁,進(jìn)入你的<strong>MySQL</strong>源代碼樹(shù)頂級(jí)目錄并運(yùn)行這些命令:
</p>
<pre>
shell>gunzip <patch-file-name.gz |patch - p1
shell>rm config.cache
shell>make clean
</pre>
<p>在使用一個(gè)補(bǔ)丁以后,按照正常的源代碼安裝的指令,開(kāi)始<code>./configure</code>步驟。在運(yùn)行<code>make
install</code>后,重啟你的<strong>MySQL</strong>服務(wù)器。 </p>
<p>在運(yùn)行<code>make install</code>前,你可能需要關(guān)閉所有正在運(yùn)行的服務(wù)器(使用<code>mysqladmin
shutdown</code>)。如果一個(gè)程序的新版本替代當(dāng)前正在執(zhí)行的版本,一些系統(tǒng)不允許你安裝它。
</p>
<h3><a NAME="configure_options" HREF="manual_toc.html#configure_options">4.7.3 典型<code>的configure</code>選項(xiàng)</a></h3>
<p><code>configure</code>腳本給你一個(gè)很大的控制權(quán)來(lái)如何配置你的<strong>MySQL</strong>分發(fā)。典型地,你使用<code>configure</code>命令行的選項(xiàng)進(jìn)行。你也可以用正確的環(huán)境變量作用于<code>configure</code>。對(duì)于一個(gè)由<code>configure</code>支持的選擇列表,運(yùn)行這個(gè)命令:
</p>
<pre>
shell> ./configure -- help</pre>
<p>一些更常用的<code>configure</code>選項(xiàng)見(jiàn)下面的描述:
<ul>
<li>只編譯<strong>MySQL</strong>客戶庫(kù)和客戶程序而不是服務(wù)器,使用<code>--without-server</code>選項(xiàng):
<pre>
shell> ./configure --without-server</pre>
<p>如果你沒(méi)有一個(gè) C++ 編譯器,<code>mysql</code>將不編譯(有一個(gè)客戶程序需要C++)。在這種情況下,你可以去掉<code>configure</code>里面測(cè)試C++編譯器的代碼,然后運(yùn)行帶有
<code>--without-server</code>選項(xiàng)的<code>./configure</code>。編譯步驟步將仍然嘗試構(gòu)造<code>mysql</code>,但是你可以忽略任何關(guān)于<tt>“
mysql.cc ”</tt>的警告。(如果<code>make</code>停止,試試<code>make -k</code>告訴它即使出錯(cuò)繼續(xù)剩下的構(gòu)造步驟)。</p>
</li>
<li>如果你不想要位于<tt>“/usr/local/var”</tt>目錄下面的日志(log)文件和數(shù)據(jù)庫(kù),使用類似于下列<code>configure</code>命令的一個(gè):
<pre>
shell>./configure--prefix=/usr/local/mysql
shell>./configure--prefix=/usr/local --localstatedir=/usr/local/mysql/data
</pre>
<p>第一個(gè)命令改變安裝前綴以便任何東西被安裝在<tt>“/usr/local/mysql”</tt>下面而非缺省<tt>的“/usr/local”</tt>。第二個(gè)命令保留缺省安裝前綴,但是覆蓋了數(shù)據(jù)庫(kù)目錄缺省目錄(通常是<tt>“/usr/local/var”</tt>)并且把它改/<code>usr/local/mysql/data</code>.
</p>
</li>
<li>如果你正在使用Unix并且你想要<strong>MySQL</strong>的套接字位于缺省地點(diǎn)以外的某個(gè)地方(通常在目錄<tt>“/tmp”</tt>或<tt>“/var/run”</tt>,使用象這樣的<code>configure</code>的命令:
<pre>
<p>注意給出的文件必須是一個(gè)絕對(duì)路徑! </p>
</li>
<li>如果你想編譯靜態(tài)鏈接程序(例如,制作二進(jìn)制分發(fā)、獲得更快的速度或與解決與RedHat分發(fā)的一些),像這樣運(yùn)行<code>configure</code>:
<pre>
shell>./configure --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
</pre>
</li>
<li>如果你正在使用<code>gcc</code>并且沒(méi)有安裝<code>libg++</code>或<code>libstdc++</code>,你可以告訴<code>configure</code>使用<code>gcc</code>作為C++編譯器:
<a NAME="IDX45"></a> <a NAME="IDX46"></a> <a NAME="IDX47"></a> <a NAME="IDX48"></a> <pre>
shell> CC=gcc CXX=gcc ./configure</pre>
<p>當(dāng)你使用時(shí)<code>gcc</code>作為C++編譯器是,它將不試圖鏈接<code>libg++</code>或<code>libstdc++</code>。如果構(gòu)造失敗并且產(chǎn)生有關(guān)編譯器或鏈接器的錯(cuò)誤,不能創(chuàng)建共享庫(kù)<tt>“l(fā)ibmysqlclient.so.#”</tt>(<samp>“#”</samp>是一個(gè)版本號(hào)),
你可以通過(guò)為<code>configure</code>指定<code>--disable-shared</code>選項(xiàng)來(lái)解決此問(wèn)題。在這種情況下,<code>configure</code>將不構(gòu)造一個(gè)共享<code>libmysqlclient.so.#</code>庫(kù)。
</p>
</li>
<li>你可以設(shè)置<strong>MySQL</strong>對(duì)于非<code>NULL</code>的列不使用<code>DEFAULT</code>列值(即,不允許列是<code>NULL</code>)。這導(dǎo)致<code>INSERT</code>語(yǔ)句產(chǎn)生一個(gè)錯(cuò)誤,除非你明確地為所有要求非<code>NULL</code>值的列指定值。為了禁止使用缺省值,這樣運(yùn)行<code>configure</code>:
<a NAME="IDX49"></a> <a NAME="IDX50"></a> <pre>shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure</pre>
</li>
<li>缺省地,<strong>MySQL</strong>使用ISO-8859-1(Latin1)字符集。為了改變?nèi)笔≡O(shè)置,使用<code>--with-charset</code>選項(xiàng)目:
<pre>
shell> ./configure -- with-charset=CHARSET</pre>
<p><code>CHARSET</code>可以是<code>big5</code>、<code>cp1251</code>、<code>cp1257</code>、<code>czech</code>、<code>danish</code>、<code>dec8</code>、<code>dos</code>、<code>euc_kr</code>、<code>gb2312</code>
<code>gbk、german1</code>、<code>hebrew</code>、 <code>hp8</code>、<code>hungarian</code>、<code>koi8_ru</code>、<code>koi8_ukr</code>、<code>latin1</code>、<code>latin2</code>、<code>sjis</code>、<code>swe7</code>、<code>tis620</code>、<code>ujis</code>、<code>usa7</code>、<code>win1251</code>或<code>win1251ukr</code>之一。見(jiàn)<a HREF="manual_Server.html#Character_sets">9.1.1 用于數(shù)據(jù)和排序的字符集</a>。注意:如果你想要改變字符集,你必須在配置期間做<code>make
distclean</code>!如果你想在服務(wù)器和客戶之間變換字符,你應(yīng)該看一下<code>SET
OPTION CHARACTER SET</code>命令。見(jiàn)<a HREF="manual_Reference.html#SET_OPTION">7.25<code>
SET OPTION</code>句法</a>。<strong>警告:</strong>如果你在創(chuàng)建了任何數(shù)據(jù)庫(kù)表之后改變字符集,你將必須對(duì)每個(gè)表運(yùn)行<code>myisamchk
-r -q</code>,否則你的索引可能不正確地排序。(如果你安裝了<strong>MySQL</strong>,創(chuàng)建一些表,然后重新配置<strong>MySQL</strong>使用一個(gè)不同的字符集并且重新安裝它,這時(shí)就可能發(fā)生這種情況。)</p>
</li>
<li>為了配置<strong>MySQL</strong>帶有調(diào)試代碼,使用<code>--with-debug</code>選項(xiàng):
<pre>
shell> ./configure --with-debug</pre>
<p>這導(dǎo)致包含一個(gè)安全的內(nèi)存分配器,能發(fā)現(xiàn)一些錯(cuò)誤和并提供關(guān)于正在發(fā)生的事情的輸出。見(jiàn)<a HREF="manual_Porting.html#Debugging_server">G.1調(diào)試一個(gè)MySQL服務(wù)器</a>。 </p>
</li>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -