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