【问题标题】:Connect to MSSQL through PERL on FreeBSD*在 FreeBSD* 上通过 PERL 连接到 MSSQL
【发布时间】:2016-05-21 00:27:46
【问题描述】:

我正在尝试通过 freebsd 上的 perl 连接mssql。 在 Linux 上这很容易:

apt-get install libdbi-perl freetds-bin libdbd-sybase-perl

之后,我创建了带有设置的 freetds.conf 文件。示例:

[MSSQL]
    host = %my server%
    port = 1433
    tds version = 7.0 

及其工作。对于我尝试过的相同逻辑:

cd /usr/ports/databases/p5-DBI/ && make install clean
cd /usr/ports/databases/freetds/ && make install clean
cd /usr/ports/databases/p5-DBD-Sybase/ && make install clean

然后我在 Linux 上运行相同的代码:

use DBI;

my $hostname = 'MSSQL';
my $database = %my database%;
my $user = %my user%;
my $pass = %my password%;

my $dbh = DBI->connect("DBI:Sybase:server=$hostname;database=$database", $user, $pass);

我得到:

DBI connect('server=MSSQL;database=%my database%, %user%, %password%) failed: (no error string)

我将不胜感激。

【问题讨论】:

    标签: sql-server perl freebsd freetds


    【解决方案1】:

    似乎不同版本的 Sybase.pm 有不同的 DBI->connect 参数解析逻辑。

    我刚刚发现 Sybase.pm $Id 1.115$ 不适用于表单调用

    DBI->connect('DBI:Sybase:server=mydbhost:database=dbname','username','password')
    

    (注意 'mydbhost' 和 'database' 之间的冒号)而 Sybase.pm $Id 1.44$ 完美。 还是 DBI 有区别?

    在这里为谷歌员工发布。

    【讨论】:

      【解决方案2】:

      您也可以使用pkg 工具在您的freebsd 机器上安装软件包。 所以,是这样的:

      pkg install p5-DBI p5-DBD-Sybase freetds
      

      关于你的perl检查脚本,我想你还需要包括:

      use DBD:Sybase;
      

      我会尝试将DBI:Sybase:server=... 更改为dbi:Sybase:server=...

      但如果您需要确定,请查看此网址:http://search.cpan.org/~mewp/DBD-Sybase-1.15/Sybase.pm

      希望我的 0.002 有所帮助! ;-)

      【讨论】:

        猜你喜欢
        • 2012-12-31
        • 1970-01-01
        • 1970-01-01
        • 2011-06-07
        • 1970-01-01
        • 2011-09-25
        • 1970-01-01
        • 2013-12-08
        • 2012-12-27
        相关资源
        最近更新 更多