Neo's Blog

首頁 相本 討論 書籤

分類目錄
本站日誌 (51)
碎碎唸啦 (173)
網站架設 (84)
程式設計 (161)
軟體使用 (69)
電子商務 (126)
經營奇想 (48)
基金理財 (11)
聰明消費 (87)
電影心得 (47)
開放原碼 (16)
工作記錄 (2)
毛毛小記 (9)
就是不同 (2)




歷史資料
 




February 09, 2004
UNIX* + Moveable + MySQL 注意事項

首先要注意的就是 perl-dbd-mysql 套件一定要存在,在 Red Hat 9 已有預設安裝,如果你曾經移除過 Red Hat Linux 中的 MySQL RPM 套件,因為相依性的關係,這個套件也會一併被移除掉,這時就會發生 Perl 的 DBD::mysql 無法啟動的狀況。也就是在執行 mt-load.cgi 時就會出現以下的錯誤:


載入初始系統資料中...

載入資料時發生錯誤:


install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /var/www/cgi-bin/mt/extlib /var/www/cgi-bin/mt/lib /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at (eval 4) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: ExampleP, Pg, Proxy.
at /var/www/cgi-bin/mt/lib/MT/ObjectDriver/DBI/mysql.pm line 48

 


這時就必須安裝 perl-dbd-mysql 了,但是在這之前,必須要有 mysql_config,這個是包在 mysql-devil 套件裡面,如您尚未安裝,請先到 http://www.mysql.com/downloads 選定您的 MySQL 版本及作業系統後下載。

確定無誤後可以用 perl 線上安裝的方式來幫你安裝 perl-dbd-mysql 套件,連同套件相依性的問題也會一併檢查。

只要在您的 Linux 主機連在Internet上的話,直接執行以下的指令即可!

perl -MCPAN -e"force install DBD::mysql"
 

接下來就是要注意 MySQL 裡面的使用者 root@localhost 跟 test 資料庫一定要存在,而且 root@localhost 不可以設定密碼,否則預設測試的安裝資料庫會失敗。

(若您不想更動 MySQL 的設定,您就必須去修改 Makefile.PL,這個檔案應該放在 /root/.cpan/build/ 裡的 DBD 安裝資料夾裡面,修改的方式請自行下 perl Makefile.PL --help 來看)
 

請注意,若您出現一堆 Unsuccessful stat on filename containing newline at
/usr/lib/perl5/5.8.0/ExtUtils/Liblist/Kid.pm line 97.  的訊息,請先下以下的指令後再重新執行線上安裝的動作:

export LANG=C

到這邊大概就 dbd-perl-mysql 就大功告成啦,執行 mt-load.cgi 時 Movable 就可以正確的將資料寫進 MySQL 啦!
 

 
由 Neo 發表於 February 9, 2004 01:40 AM 收進你的MyShare個人書籤  

您好,我日前在serverzoo的linux主機上嘗試裝MT3.15。在第一次安裝失敗後,我直接刪除了原先在FTP上的mt-static和cgi-bin中那些MT的檔案,後來我就在mt-load.cgi遇到您在這篇文章中寫到的問題

我的作業系統是Window,MT也沒直接裝在電腦中--請問您提到解決方法適用於我這種情形嗎?我真的不知道下載的MySQL要裝在哪裡…最後謝謝您看完這篇留言 (/_\);;

--
Movable Type System Setup
Loading initial data into system...

An error occurred while loading data:

Unsupported driver MT::ObjectDriver::DBM: Can't locate DB_File.pm in @INC
(@INC contains: ./extlib ./lib /usr/lib/perl5/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at
lib/MT/ObjectDriver/DBM.pm line 9. BEGIN failed--compilation aborted at
lib/MT/ObjectDriver/DBM.pm line 9. Compilation failed in require at (eval 4)
line 1. BEGIN failed--compilation aborted at (eval 4) line 1.


麻瓜 發表於 March 20, 2005 07:36 PM

MT 3.15 我還沒裝過,所以不確定回答的是否正確。

如果你的狀況跟這篇的一樣的話,看這個訊息裡面有 DB_File.pm,應該是資料庫格式還沒指定到 mysql,如果是指定到mysql,那出來的訊息應該是 Can't locate DBD/mysql.pm,而不是 Can't locate DBD/DB_File.pm,所以檢查一下你的設定檔是不是有確實設定 mysql 為 MT 用的資料庫?


neo 發表於 March 21, 2005 10:39 PM
發表迴響  
(*星號開頭為必填欄位)











(請輸入您看到的數字,看不到請按右鍵->顯示圖片)


記住我的資訊?







Copyright 2005 Neo's Blog All rights reserved.