- client ubuntu 14.04.1 lts talking ms sql server 2005. ubuntu has no registered domain. it's inside local network ms sql server.
- perl 5.18.2 using dbi 1.63 , dbd::odbc 1.52.
- installed freetds 0.92 (with tds v4.2) , unixodbc 2.2.14.
isql dsn username passwd@ command line doesn't work. perhaps should start that. still same errorunable connect data source (sql-08001).
my related config files:
2015-07-09 11:55:14 note: tds version tsql -c must go freetds.conf , odbc.ini files ========================================= /etc/odbcinst.ini: [freetds] description = freetds 0.91 microsoft sql server 2005 #driver = /usr/lib/odbc/libtdsodbc.so driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so setup = /usr/lib/x86_64-linux-gnu/odbc/libtdss.so usagecount = 1 #threading = 2 fileusage = 1 dontdlclose = 1 ========================================= /etc/odbc.ini: [odbc data sources] responsebdo = response database desc in /etc/odbc/ini [freetds] description = freetds 0.91 driver driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so [responsebdo] driver = freetds description = response mssql 2005 odbc driver server = sqlsvr.mydomain.com port = 1433 user = 'domain\domainuser' password = mypasswd database = r4w_004 # tds_version should same reported 'tsql -c'. tds_version = 4.2 [default] driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so description = default freetds odbc driver server = 10.20.30.40 user = "domain\domainuser" database = r4w_4 ========================================= relevant part of /etc/freetds/freetds.conf: # $id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden exp $ # # file installed freetds if no file same # name found in installation directory. # # information layout of file , settings, # see freetds.conf manpage "man freetds.conf". # [responsetds] #host = 10.20.30.40 host = sqlsvr.mydomain.com port = 1433 tds version = 4.2 connect timeout = 20 timeout = 20 dump file = /tmp/freetds-resp.log instance = mssqlserver use ntlmv2 = yes ========================================= tsql -c: compile-time settings (established "configure" script) version: freetds v0.91 freetds.conf directory: /etc/freetds ms db-lib source compatibility: no sybase binary compatibility: yes thread safety: yes iconv library: yes tds version: 4.2 iodbc: no unixodbc: yes sspi "trusted" logins: no kerberos: yes ========================================= odbcinst --version: unixodbc 2.2.14 perl connection info:
$respdsn="dbi:odbc:driver={sql native client};server=10.20.30.40;". "uid=$respdbuser;pwd=$respdbpw;database=r4w_004"; $respdbh=dbi->connect($respdsn); i can connect database using tsql @ command line. using perl error:
dbi connect('driver={sql native client};server=10.19.1.3;uid=gilson\mwreports;pwd=mr4gilson;database=r4w_004','',...) failed: [unixodbc][driver manager]data source name not found, , no default driver specified (sql-im002) @ /home/chuck/perl/gilson/jimv/fedex/fedex.pl line 1557. @ /usr/lib/perl5/dbi.pm line 691. dbi::__anon__[/usr/lib/perl5/dbi.pm:744](undef, undef) called @ /usr/lib/perl5/dbi.pm line 747 questions:
- is "{sql native client}" in perl connection string correct? refer entry in odbc.ini or freetds.conf file?
- what missing here?
thank you.
if you're using freetds, driver freetds not "sql native client".
try line database handle:
my $dbh = dbi->connect("dbi:odbc:driver=freetds;server=10.20.30.40;database=r4w_004", $respdbuser, $respdbpw);
Comments
Post a Comment