2014-05-19 81 views
0

我的連接字符串是:爲什麼我的Perl腳本在嘗試使用DBI連接到數據庫時掛起?

use strict; 
use DBI; 

my $dbh = DBI->connect("DBI:mysql:database=[DB];host=[HOST]","[USERNAME]", "[PASSWORD]",{'RaiseError' => 1}); 

當我運行該腳本,什麼都不會發生 - 它並不顯示任何錯誤,我必須CTRL+C打破操作。

  • 的Perl v5.10.1
  • DBI版本1.52
  • DBD :: MySQL版本3.0007
  • 的MySQL - 版本?

任何想法這裏發生了什麼?

+0

這將需要更多的信息來診斷您的問題。就在我頭頂。你的perl版本是什麼?什麼是你的DBI版本?你的數據庫服務器規格是什麼?等等。我相信你也可以想出更多相關的信息。 – Miller

+0

Perl 5.10.1和最新的DBI ......你的服務器規格是什麼意思?這是MySQL - 你還需要知道什麼? – CheeseConQueso

+0

如果將'mysql_connect_timeout = 5'(或類似的)追加到DSN會發生什麼? – pilcrow

回答

-1

您需要用本地設置的實際值替換DB,HOST,USERNAME和PASSWORD。首先確保你可以通過命令行連接到這些憑據

+0

我感謝您的幫助,但那些出於安全考慮,哈哈......謝謝,我剛剛離開反正 – CheeseConQueso

0

爲什麼不指定關於connect()方法的參數的詳細字符串? 確保您的數據庫運行正常。 如下圖所示:

use strict; 
use DBI; 
my $user = "root"; 
my $passwd = "123456"; 
my $data_source = "dbi:mysql:test_db"; 
my $dbh = DBI->connect($data_source,$user,$passwd, {RaiseError => 1}) 
       or die "Can't connect to $data_source: $DBI::errstr"; 
+0

我讓他們在實際的腳本,但出於安全原因將它們關閉在本網站......無論如何 – CheeseConQueso

相關問題