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 啦!
 

2 comments On UNIX* + Moveable + MySQL 注意事項

  • 您好,我日前在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.

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

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

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar