2016-06-28 10 views
0

구성으로 my.ini 파일을 사용하여 mysql을 연결하려고합니다. 여기 perl DBI 작업에서 mysql_read_default_group을 만드는 방법

내 펄 코드 :

use DBI; 

my $dsn = "DBI:mysql:umls;mysql_read_default_group=client;"; 

my $dbh = DBI->connect($dsn); 

그리고 여기 의 my.ini 파일입니다 공식 문서 (http://search.cpan.org/~capttofu/DBD-mysql-4.033/lib/DBD/mysql.pm), DBI이 정보를 사용합니다에 따르면

... 

[client] 

host=localhost 

user=root 

password=mypassword 

database=umls 

port=3306 

.... 

mysql을 연결하는 my.ini, 그러나, 그것은 같은 오류를 줘 : errors

내가 th ink 문제는 DBI가 my.ini를 읽지 못하므로 성공적으로 ODBC @ localhost를 기본값으로 사용합니다.

connect() 내에 사용자 이름과 암호를 지정하면 연결이 작동합니다. 누군가가 왜 'mysql_read_default_group=client'이 작동하지 않는지 알아낼 수 있습니까? 대단히 감사하겠습니다! 감사합니다

+0

1) Perl 스크립트는 어떤 운영 체제를 실행중인? 2) my.ini 파일의 전체 경로는 무엇입니까? 3) 스크립트를 실행하는 사용자에게 my.ini 읽기 권한이 있습니까? 4) my.ini의 전체 내용을 질문에 맞게 편집 할 수 있습니까? – ThisSuitIsBlackNot

+0

''mysql_read_default_file = ...''' –

답변

0

나는 당신의 문제에 대한 답을 얻기 위해 몇 가지 문서를 읽고 내가 발견 한 것은 당신이 다른 섹션에서 사용자 이름과 암호를 제공해야하고 파일 이름도 언급해야한다는 것입니다. 같은

[myapp] 
host=localhost 

user=root 

password=mypassword 

database=umls 

port=3306 

my $dbh = DBI->connect("DBI:mysql:test" 
    . ";mysql_read_default_file=$ENV{HOME}/.my.cnf" 
    .';mysql_read_default_group=myapp', 
    undef, 
    undef 
    ) or die "something went wrong ($DBI::errstr)"; 

희망이 당신을 도울 것입니다.

참조 : http://www.perlmonks.org/?node_id=519356

+0

답장을 보내 주셔서 감사합니다. 그러나 저에게는 도움이되지 않습니다. 사실 UCIS라는 CPAN 패키지가 있습니다 : : interface.when 모듈을 설치하면 이러한 오류가 발생합니다. 패키지 소스 코드를 확인하고 다음과 같이 작성했습니다. my $ dsn = "DBI : mysql : umls; mysql_read_default_group = client;"; $ db = DBI-> connect ($ dsn); –

+0

그래서 그 패키지를 설치하기 위해서는 왜 코드 라인이 $ dsn = "DBI : mysql : umls; mysql_read_default_group = client;"; $ db = DBI-> connect ($ dsn); 복용량이 효과가 없습니다. –