从red hat 6.4连接到MSSQL 2012

时间:2015-01-13 08:08:45

标签: sql-server perl redhat

我正在尝试从我的红帽6.4连接到MSSQL 2012服务器以监控一些参数。

长话短说: 我在Red Hat上配置了Icinga 1.9.4,我正在监控大量的主机/服务。 还使用labs.consol.de中的check_mssql_health(和freetds)成功监控MSSQL 2000,2005,2008,2008 R2

尝试监视MSSQL 2012时出现问题,插件无法连接到它。 要求我的MSSQL管理员仔细检查一切都配置好了,他确认,他还成功连接到另一个正在运行的MSSQL 2008的MSSQL 2012。 所以,我想,我至少应该从任何东西(perl,isql,tsql)建立一个连接,看看是否真的有效,我可以从该服务器获取一些数据,但没有任何东西可以连接。

Perl / isql / tsql也无法连接到正在运行的MSSQL服务器(我用Icinga / check_mssql_health成功监控的服务器)所以我猜这个问题是我的linux设置。

我可以(绝望地)使用你的帮助来找出问题所在。

我不知道check_mssql_health是否与MSSQL 2012服务器兼容,但是,如果我能够成功地从Perl连接到MSSQL 2012,我应该能够在Perl的帮助下得到我需要的东西。

我的设置的一些细节:

perl -MDBI -e 'DBI->installed_versions;'
  Perl            : 5.010001    (x86_64-linux-thread-multi)
  OS              : linux       (2.6.18-398.el5)
  DBI             : 1.633
  DBD::mysql      : 4.013
  DBD::Sybase     : 1.15
  DBD::Sponge     : 12.010003
  DBD::Proxy      : 0.2004
  DBD::Oracle     : 1.74
  DBD::ODBC       : 1.50
  DBD::Gofer      : 0.015327
  DBD::File       : 0.44
  DBD::ExampleP   : 12.014311
  DBD::DBM        : 0.08



 cat /etc/odbc.ini
[SASSQL26DEV]
Driver = FreeTDS
Description = MSSQL database pt serverul meu
Trace = Yes
TraceFile = /usr/local/src/traceFile.log
# Servername corresponds to the section in freetds.conf
Servername = SASSQL26DEV
Database = tempdb
#port = 1433



cat /etc/odbcinst.ini
[PostgreSQL]
Description             = ODBC for PostgreSQL
Driver          = /usr/lib/psqlodbc.so
Setup           = /usr/lib/libodbcpsqlS.so
Driver64                = /usr/lib64/psqlodbc.so
Setup64         = /usr/lib64/libodbcpsqlS.so
FileUsage               = 1

[MySQL]
Description             = ODBC for MySQL
Driver          = /usr/lib/libmyodbc5.so
Setup           = /usr/lib/libodbcmyS.so
Driver64                = /usr/lib64/libmyodbc5.so
Setup64         = /usr/lib64/libodbcmyS.so
FileUsage               = 1

[FreeTDS]
Description = FreeTDS unixODBC Driver
Driver = /usr/lib64/libtdsodbc.so



cat /usr/local/freetds/etc/freetds.conf

[SASSQL26DEV]
        host = 10.101.1.39
        #port = 1433
        tds version = 8.0
        instance = CRMDEV

以下Nagios用户是域用户

isql -v SASSQL26DEV DOMAIN\nagios 'password'
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[ISQL]ERROR: Could not SQLConnect

以下testnagios用户是MSSQL用户

isql -v SASSQL26DEV testnagios 'ZAQ!2wsx'
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[ISQL]ERROR: Could not SQLConnect


cat 11sql2012_test.pl
#!/usr/bin/perl

use DBI;

my $user   = "nagios";
my $passwd = "password";
my $server = "SASSQL26DEV";

my $dbh = DBI->connect("DBI:Sybase:server=$server", $user, $passwd, {PrintError => 0});
my $sth;

unless ($dbh) {
    die "ERROR: Failed to connect to server ($server).\nERROR MESSAGE: $DBI::errstr";
} else {
    print "\n";
    print "Successful Connection.";
    print "\n\n";
}


./11sql2012_test.pl
ERROR: Failed to connect to server (SASSQL26DEV).
ERROR MESSAGE:  at ./11sql2012_test.pl line 13.

由于

0 个答案:

没有答案