前幾天,因為需要用到資料庫,所以安裝了 MySQL 5.0 for Mac OSX,然後想要用 Perl 做資料庫的操作。對於 Perl 熟悉的人都知道,這時候就要為 Perl 安裝與資料庫連結的 module,根據這個網頁的說法,要安裝的是 DBI 與 DBD::mysql。
安裝 DBI 倒還好,可是裝 DBD::mysql 就是一切惡夢的開始...
(以下很"程式語言",可能會有點無聊 ^^")
相信有安裝過 Perl module的人都知道,安裝 module 的標準安裝程序:
perl Makefile.PL
make
make test
make install
當然,在 Mac 上面,要稍微修正一下(Panther):
perl Makefile.PL
sudo make
sudo make test
sudo make install
這個時候,問題來了...
(1) 首先,perl Makefile.PL
的時候,遇到了這個錯誤:
Cannot find the file 'mysql_config'! Your execution PATH doesn't seem not contain the path to mysql_config. Resorting to guessed values!
(2) 再來,sudo make test
的時候,居然發現:
Failed 20/21 test scripts, 4.76% okay. 894/897 subtests failed, 0.33% okay.
錯誤太多了吧 @.@ 結果好像是這個部份的編譯錯誤:
/****/DBD-mysql-3.0002_5/blib/arch/auto/DBD/mysql/mysql.bundle
有這麼一個錯誤訊息:
Symbol not found: _sprintf$LDBLStub
為了解決,google了很久,找了以下的文章:
以下的適用於Mac OS X 10.3 (Panther)
問題 (1) 的解決方法找到了:在 $PATH
加入 /usr/local/mysql/bin
(因為 mysql_config 的位置在這裡,但是安裝完 MySQL 後卻沒自動加入路徑)
但是問題 (2) 還是沒解決... 後來發現,我裝的 gcc 好像只有 3.3?會不會是編譯器的問題呢?不管了,試試吧... 果然,裝了 gcc 4.0 後,真的可以正常編譯了!錯誤訊息也不再出現了 T.T
Summary 一下...
首先,要先安裝 gcc 4.0(如果 3.3 跟 4.0 都有裝的話,記得要 sudo gcc_select 4.0
,這樣會把預設的編譯器設定為 4.0 版本)。
第二,在 perl Makefile.PL
後面加參數(其實我不知道是不是一定要加,不過至少這樣設定以後我可以用),testuser 跟 testpassword 要自己換掉,ip 跟 port 看需求設定。
最後,照標準安裝程序安裝就好囉!
perl Makefile.PL --testdb=test --testuser=root --testpassword=123 --testhost=localhost:3306
sudo make
sudo make test
sudo make install
以此篇紀念,我逝去的一個禮拜的時間... orz