2015-10-10 241 views
0

我在Mac OS X Yosemite上使用XAMPP,並且正在嘗試使用Perl與我的MySQL數據庫進行通信。如何檢查Perl模塊(DBD :: mysql)是否已正確安裝?

這需要兩件事:(1)DBI和(2)mysql驅動模塊,DBD :: mysql。

我遇到了很多安裝DBD :: mysql部分的麻煩。但是,在網上按照一些指示後,它現在看起來像安裝了DBD :: mysql,但我懷疑它是否正確。

終端,當我加載了CPAN,然後鍵入 「安裝DBD :: mysql的」,它回答: 「DBD :: mysql的是最新(4.032)」。

從它的外觀,然後,它被安裝。然而,我擔心我已經安裝了足夠它可以說,「嘿,我已經安裝了!」,但不足以讓它實際上起作用,這就是爲什麼當我出現錯誤時嘗試用Perl連接到我的數據庫:

install_driver(mysql) failed: Can't load '/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not loaded: libmysqlclient.18.dylib 

Referenced from: /Library/Perl/5.18/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle 
    Reason: image not found at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194. 
at (eval 6) line 3. 
Compilation failed in require at (eval 6) line 3. 
Perhaps a required shared library or dll isn't installed where expected 
at login.pl line 9. 

相關的Perl代碼片段:

my $dbh = DBI->connect(   
    "dbi:mysql:dbname=TEST", 
    "root",       
    "",       
    { RaiseError => 1 },   
) or die $DBI::errstr; 

我試圖解決這是否與我安裝DBD :: mysql的的問題,或者如果它是我的Perl代碼。

如何驗證我的安裝DBD :: mysql是否都很好?更好的是,我怎樣才能避免這個錯誤?

謝謝。

回答

0

您可以將connect()調用包裝到eval塊中以捕獲此錯誤,但是如果崩潰,則沒有多餘選項,可能只是嘗試生成更加用戶友好的錯誤消息,然後無論如何死亡。

至於你爲什麼得到錯誤,請嘗試檢查你的系統上的libmysqlclient.18.dylib的位置。它似乎是在編譯DBD::mysql驅動程序時可以找到它的地方,但不是在腳本運行期間。假設它沒有被意外卸載,將其目錄添加到DYLD_LIBRARY_PATH變量應該工作。我不知道用什麼配置來添加路徑來在OSX上增加永久性。

相關問題