2017-01-21 4 views
1

スカイプに関するメタデータをskype2というSybaseデータベースに接続しようとしています。 Perlのコードは、DBIモジュールを使って接続しています。ここでスカイプデータベースに接続するための正しいポートを見つける

は私のコードです:

my $dbh = DBI->connect("dbi:Sybase:server=skype2;database=*****", 'user', 'pass', {PrintError => 1}); 

私は/etcに位置freetds.conf[skype2] DSNを設定しました:

[skype2] 
    host = **.**.**.** 
    port = 49396 
    tds version = 7.0 

問題は、私はを通じて動的にポートを見つける必要があるということですデータベースクエリ(ここでは49396です)。 netstatを使用して適切なポートに接続して検索するか、それとも良い方法がありますか?

ありがとうございます。

+0

これはMicrosoftのチャットソフトウェアSkypeに関するものですか? – simbabque

+0

@simbabque私は正確に知っていません.iこのデータベースを使用して、特定のcomoanyに対して起こるすべてのskype呼び出しを見つけてください! – farzane

+0

私はそれがドライバ名が言う通り、MySQLではなくSybaseを意味していますか?だからあなたのOSは非標準的なポートでデータベースサーバーを動かすことに決めたので、それに接続するだけです。ポートの割り当てを毎日変更しているわけではないので、ポートを一度見つけてそれに応じて設定ファイルを変更するのが妥当と思われます。実際には、これはどこかで文書化されていなければならないので、netstatで猿を使う必要はありません。 – mbethke

答えて

0

私が正しく理解していれば、データベースに接続してセカンダリデータベースのポートを見つける必要があります。変数としても、接続文字列の一部としてPORTを指定することができます。接続文字列の例を次に示します。

my $port = "1433"; 
my $dbh = DBI->connect('DBI:ODBC:DRIVER={FreeTDS};SERVER=yourfullserver.com;PORT=' . $port . ';DATABASE=yourdbname;TDS_Version=7.2', 'user', 'password', {PrintError => 1}); 

ダイナミックポートに接続できるようになります。したがって、最初のサーバーに接続し、必要なポート番号をDBから取得し、変数に保存してから、2番目のデータベースに接続します。がんばろう!

関連する問題