FreeBSD   MySQL

.逸晨


為何選用 MySQL?
因為︰
  • 速度
    MySQL 大概是您所能找到的最快速的資料庫系統 -- 起碼到目前為止還是如此。您可以前往拜訪 http://www.mysql.com/benchmark.html 來證實這個說法。

  • 免費
    除了 MS-Windows 版本的 MySQL 皆屬於 GNU Public License (GPL) 授權模式。因此,除非您打算在 MS-Windows 作業平台下來使用 MySQL,不然您是可以免費使用這套資料庫系統的。

  • 支援查詢語言
    現今所有的資料庫系統都使用 SQL (Structured Query Language) 語言,MySQL 當然也不例外。

  • 性能與介面
    MySQL 可以承受同時多個客戶端連線,客戶端也可以同時使用多個資料庫。客戶端可使用多種介面來存取 MySQL,如︰命令列連線、瀏灠器、或使用圖形操作介面的客戶端應用程式。您也可以透過 MySQL 所提供的各種程式語言的介面,來自行開發客戶端應用程式,如︰C、Perl、Java、PHP、Python等等。

  • 連線與安全
    MySQL 是一完全網路化的資料庫系統,讓您可以決定何人可於何處透過網際網路來存取該資料庫。因為 MySQL 具有存取權控制功能,無權查看資料的人是無法存取您的資料。

  • 跨平台
    MySQL 可於多種系統平台上運作,不論是 Unix 系統或非 Unix 系統,如︰Linux、FreeBSD、Windows、OS/2........。

  • 公開發行
    雖然 MySQL 並非一個 Open Source 的計劃,但其原始碼是公開且容易取得的。只要您有興趣,您隨時可以拿出 MySQL 原始碼來仔細研究一番,甚至針對自己的需求來改變原始碼 -- 只要您有此能力。

  • 技術支援
    這是個很重要的問題。一個無法得到任何或可以理解、接受的技術支援,就算該系統是如此完美,對於您還是沒有用的。MySQL 本身提供了一套詳盡的參考手冊 (多達 450 頁,且持續增加中),開發人員也承辦了技術性的支援服務 (當然,這是要收費的);除此之外,也因 MySQL 於國內的使用率是最高的,同時市面上也不乏相關性書籍,因此,當您於使用 MySQL 資料庫系統有所疑惑時,是不用怕會因找不到解決辦法,而棄用改尋它方的。


安裝 MySQL
我們將採用 ports 的安裝方式來為您解說如何在 FreeBSD 作業系統上安裝 MySQL。
請先更新您的 ports-tree 內容,再來請切換到 /usr/ports/databases/mysql323-server/ 目錄。
我們無法測知當您在查閱本文時,ports-tree 中所提供的 MySQL 是使用何時的版本,因此,若是您無法於 ports-tree 中找到 mysql323-server 目錄時,請查閱一下 /usr/ports/databases/ 目錄結構,您應該會看到個 mysqlxxx-server 的子目錄,請切換工作目錄到該 mysqlxxx-server 子目錄下即可。其中 xxx 表示 MySQL 的版本編號。
在本文中是使用 MySQL 3.23 系列的版本,如您所使用的版本與本文不同,請留意所使用版本的說明文件 -- 雖然基本原理是相同的。

再來,請於 /usr/ports/databases/mysql323-server/ 目錄下執行 make 指令,您將會看到如下畫面︰

You may use the following build options:

   WITH_CHARSET=charset    define the primary built-in charset (latin1);
   WITH_XCHARSET=list      define other built-in charsets (may be 'all');
   DB_DIR=directory        Set alternate directory for database files
                           (default is /var/db/mysql).
   WITH_LINUXTHREADS=yes   Use the linuxthreads pthread library.
                           This is _NOT_ recommended for production
                           servers. Expect problems when enabled.
   SKIP_INSTALL_DB=yes     Skip mysql_install_db
                           (i. e. leave /var/db/mysql alone).
                           This is useful for upgrades.
                           Be sure to know what you are doing!
   SKIP_DNS_CHECK=yes      don't run resolveip to do an additional
                           DNS check before inserting local hostname to
                           mysql database.
                           Use if your machine has no offical DNS entry.
   BUILD_STATIC=yes        Build a static version of mysqld.
   BUILD_OPTIMIZED=yes     Add -mcpu=pentiumpro -O3 to CFLAGS.
                           This setting may produce broken code and thus
                           is not recommended for production servers.

>> mysql-3.23.53.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
此時請先按下 Ctrl + C 組合鍵來中止 make 的進行。

上方中的選項是您可以選擇使用的安裝參數,請依據後面的說明並針對自己的需求來加入所需選項。其中最常用的就是︰

  • DB_DIR=directory -> 指定資料庫目錄。預設目錄為 /var/db/mysql,您可以針對自己的情況改變它,如︰DB_DIR=/home/mysql

  • SKIP_INSTALL_DB=yes -> 不建立 MySQL 的相關資料目錄與權限資料表。這是針對升級 MySQL 版本而用的。如果您所指定的資料庫目錄與主機中原有的資料庫目錄不同,您可以忽略它。當然,您也可以使用它,然後於安裝完成後執行 mysql_install_db 指令來建立 (需要於安裝後啟動 MySQL 之前執行,且只需執行一次即可。)。
如果您實在是不知該加入哪些參數,比如,您是第一次安裝 MySQL 的使用者,那就請您跟著如下步驟來執行吧。
shell# cd /usr/ports/databases/mysql323-server
shell# make DB_DIR=/home/mysql install clean
或是直接執行 make install clean 使用預設的資料庫目錄也可以。
再來您就會看到系統開始抓取 MySQL 的原始碼壓縮檔回來,並進行編譯與安裝的動作。這需要些時間,您可以先起來活動一下筋骨,喝杯茶水,讓自己休息一下 ^_^


啟動/關閉 MySQL
要啟動或關閉 MySQL 服務並非僅只有單一方法,不過既然我們是在 FreeBSD 作業系統中,且我們也採用了 ports-tree 安裝 MySQL,當然我們就不能浪費了 MySQL ports 作者為咱們提供的好用指令稿 -- /usr/local/etc/rc.d/mysql-server.sh
  • 啟動︰
    shell#/usr/local/etc/rc.d/mysql-server.sh start
  • 關閉︰
    shell#/usr/local/etc/rc.d/mysql-server.sh stop
如何?是否很簡便呢 ^_^
而且當您重新啟動系統時,還會自動關閉 MySQL,並且於開機後自動啟動 MySQL 喲!!

MySQL 本身提供了四個設置檔,如果您是使用 ports-tree 的安裝方式來安裝 MySQL,則它們將被存放於 /usr/local/share/mysql 目錄下,它們的檔名格式為 my-*.cnf,如果您想要讓您的 MySQL 有更佳的效能,您就不能放棄研讀這四個設定檔中的差異。
您可以先針對您的系統環境,選用個較適用的設置檔,如︰my-small.cnf 並將它覆制為 /etc/my.cnf 即可。如此當下次 MySQL 啟動時,便會讀取 /etc/my.cnf 設置檔中的設定。

在安裝好 MySQL 之後,第一件事便是建立基本資料庫 (privilege database) -- 如果您是第一次安裝 MySQL 或於安裝時使用了 SKIP_INSTALL_DB=yes 選項。而這個工作當您使用 port 安裝方式,且未使用 SKIP_INSTALL_DB=yes 選項的話,基本資料庫將會自動建立完成。

接下來就是最重要的 -- 改變 MySQL 超級使用者 (root) 的密碼
有個觀念需要釐清的,MySQL 資料庫系統中的帳號管理,與作業系統中的帳號管理是不同步的。也就是說 MySQL 中所存在的帳號,未必就存在於作業系統中;同樣的,作業系統中存在的帳號,未必就存在於 MySQL 中。
所以,在 MySQL 中的超級使用者 (root) 與 FreeBSD 中的系統管理員帳號 (root) 僅只是帳號名稱相同而已,但並非同一個帳號喲。而到目前為止,MySQL 預設不為 root 帳號設定預設密碼 -- 有誰會用自己永遠記不得的密碼呢??
因此在安裝好 MySQL 且建立了 privilege database 之後,馬上就要接著為 MySQL 管理帳號 -- root 來設定密碼,指令如下︰

shell# mysqladmin -u root password 'your-password'

如果您執行指令後,看到如下訊息︰

mysqladmin -u root password 'jpsnpzax' mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)' Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!

那應該就是您的 MySQL 尚未啟動,請先記得啟動 MySQL 之後再重新一次!!
現在您的 MySQL 服務已可正常服務,因 MySQL 的教學並非本書之重點,有關於 MySQL 的操作、設定等說明,請自行相閱相關書籍。


上一篇返回首頁目錄索引章節目錄回上一頁Page UP下一篇

最佳瀏灠環境︰Mozilla & 1024x768