2014-05-19 6 views
0

내 연결 문자열은 다음과 같습니다DBI를 사용하여 데이터베이스에 연결하는 동안 Perl 스크립트가 멈추는 이유는 무엇입니까?

use strict; 
use DBI; 

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

내가 스크립트를 실행하면 아무 일도 발생하지 않습니다 - 그것은 모든 오류를 표시하지 않습니다, 나는 작업을 중단 할 CTRL+C에 있습니다.

  • 펄 v5.10.1
  • DBI 버전 1.52
  • DBD :: mysql을 버전 3.0007
  • 의 MySQL - 버전?

아이디어가 있습니까?

+0

문제를 진단하는 데 더 많은 정보가 필요합니다. 내 머리 꼭대기에서 떨어져. 당신의 펄 버전은 무엇입니까? DBI 버전은 무엇입니까? 데이터베이스 서버 사양은 무엇입니까? 당신은 또한 더 많은 관련 정보를 얻을 수있을 것이라고 확신합니다. – Miller

+0

Perl 5.10.1 및 최신 DBI ... 서버 사양이란 무엇입니까? MySQL입니다. 그 밖에 알아야 할 것이 있습니까? – CheeseConQueso

+0

DSN에'mysql_connect_timeout = 5' (또는 유사)를 추가하면 어떻게됩니까? – pilcrow

답변

-1

로컬 설정의 DB, 호스트, 사용자 이름 및 암호를 실제 값으로 바꿔야합니다. 먼저 해당 자격 증명을 사용하여 명령 줄에서 mysql에 연결할 수 있는지 확인하십시오.

+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