2016-06-28 6 views
0

設定としてmy.iniファイルを使用してmysqlに接続しようとしています。ここでperl DBI作業でmysql_read_default_groupを作成するには

は私のPerlのコードです:

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)によると

... 

[client] 

host=localhost 

user=root 

password=mypassword 

database=umls 

port=3306 

.... 

、 DBIからの情報を使用します。 mysqlに接続するmy.ini、しかし、それは私のようなエラーを与える:errors

私はインクの問題は、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

あなたの応答をありがとうございました。しかし、それは私のためにはうまくいかないでしょう。実際に私はUMLSと呼ばれる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);服用しないでください。 –

関連する問題