首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBD::Sybase错误

DBD::Sybase错误
EN

Stack Overflow用户
提问于 2015-04-30 00:39:30
回答 2查看 6.2K关注 0票数 0

首先,我要感谢您的时间和知识分享,我对perl模块一窍不通

我有一个64位的ubuntu服务器12.04,带有Perl版本14,subversion 2 (v5.14.2),是为x86_64-linux-gnu-thread-multi和CPAN探索和模块安装(v2.10)构建的。

我正在尝试使用perl脚本访问Microsoft SQL Server,但在使用DBD::Sybase模块时遇到了很大的困难

当我尝试安装DBD::Sybase CPAN时,它告诉我它已经安装:

代码语言:javascript
复制
cpan[1]> install DBD::Sybase
Reading '/root/.cpan/Metadata'
  Database was generated on Wed, 29 Apr 2015 14:53:21 GMT
DBD::Sybase is up to date (1.15).

我还在我的文件系统中发现了多个Sybase.pm文件,其中一些位于Perl路径下

代码语言:javascript
复制
root@server:# find /* -name Sybase.pm
/home/usriten/download/DBD-Sybase-1.15/Sybase.pm
/root/.cpan/build/DBD-Sybase-1.15-TtUI0T/Sybase.pm
/root/.cpan/build/DBD-Sybase-1.15-kNqdf7/Sybase.pm
/root/.cpan/build/DBD-Sybase-1.15-rZgcTa/Sybase.pm
/usr/local/lib/perl/5.14.2/Sybase.pm
/usr/local/lib/perl/5.14.2/DBD/Sybase.pm
/usr/local/lib/perl/5.14.2/DBI/Sybase.pm

但是,当我尝试运行我的脚本时,它在调用'if ($self->{handle} = DBI->connect(‘))的行上返回一个错误。

代码语言:javascript
复制
# ./check_mssql_health --hostname <MSSQL_Server_IP> --username <SQL_User> --password <Pass> --mode connection-time
mode connection-time
CRITICAL - cannot connect to <MSSQL_Server_IP>. install_driver(Sybase) failed: Can't locate loadable object for module DBD::Sybase in @INC (@INC contains: . /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl) at (eval 10) line 3
Compilation failed in require at (eval 10) line 3.
Perhaps a module that DBD::Sybase requires hasn't been fully installed
 at ./check_mssql_health line 3192

我已经花了很多时间来收集帖子,但我没有找到一个解决方案,或者至少一个我可以理解和实现的解决方案。

致以最好的问候,塞巴斯蒂安

EN

回答 2

Stack Overflow用户

发布于 2015-04-30 02:36:30

我让它在不同的设置下工作。

不要使用DBD::Sybase,而要安装freetds、unixodbc,然后安装DBD::ODBC。在freetds.conf文件中设置适当的参数。我的是这样的

代码语言:javascript
复制
[myMSSL]
        host = 111.22.33.44
        port = 1433
        tds version = 7.2
        client charset = UTF-8

和/etc/odbc.ini

代码语言:javascript
复制
[mySQSL_mydb]
APP = unixodbc
Description     = Database mydb on myMSSQL
Driver          = TDSdriver
Server          = myhost
Database        = mydb
Port            = 1433
#Trace           = No

我想这些就是你需要的包裹。

  • libdbd-freetds -免费数据库服务器驱动程序用于servers
  • freetds-bin
  • tdsodbc用于连接到MS SQL和Sybase SQL的-ODBC驱动程序libdbi

tdsodbc- Freetds命令行实用程序

ALternatively,另请参阅此帖子:Using Ubuntu, how do I install DBD::Sybase from CPAN?

(还有一些其他的,例如这个:Access SQL Server from Solaris)

票数 2
EN

Stack Overflow用户

发布于 2015-04-30 01:39:14

我会尝试通过apt安装它。

代码语言:javascript
复制
sudo apt-get install libdbd-sybase-perl -y

我发现CPAN有时会遗漏依赖项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29949682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档