freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
Re: [freetds] Version Not Updating; Connection Not Connecting
- From: Frediano Ziglio <freddy77 AT gmail.com>
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] Version Not Updating; Connection Not Connecting
- Date: Sat, 16 May 2015 21:28:50 +0100
2015-05-16 20:55 GMT+01:00 Ben David <bendavid AT briarpatch.coop>:
> Dear FreeTDS Mailing List,
>
> Thanks for the list! I've been reading it a lot to no avail, so I thought
> I would finally post. The basic story for creating this is that we have a
> SQL Anywhere 12 database on the network here at work we are trying to
> connect to from another workstation - the plan is to utilize PHP PDO with
> FreeTDS/ODBC as the connector.
>
> I installed FreeTDS to accomplish this in part, but I am having an
> incredibly difficult time getting it to work. Here is my system config:
>
> CentOS: 7
> FreeTDS: 4.2 (trying to get it to use version 8.0)
> PHP: 5.4.16
>
> The following configuration was adapted from a thread on this forum after
> multiple failed attempts otherwise, I thought it would be a better place to
> start than my other attempts:
>
> ---
>
> My current freetds.conf:
>
> [global]
> tds version = 8.0
> client charset = UTF-8
> dump file = /tmp/freetds.log
> dump file append = yes
> debug flags = 0xffff
> debug level = 10
> text size = 64512
> [mssql_tds]
> host = 101.215.76.250
> port = 2638
> tds version = 8.0
> client charset = UTF-8
>
> odbc.ini (found in the /php.d/ directory, not in /etc/):
>
> extension=odbc.so
>
> [mssql]
> Description = mssql_tds
> Driver = mssql_tds
> Server = mssql_tds
> Port = 2638
> Trace = Yes
> TraceFile = /tmp/odbc.log
> TDS_Version = 8.0
>
> odbcinst.ini:
>
> # Define where to find the driver for the FreeTDS ODBC connections.
>
> [ODBC]
> Trace = yes
> Tracefile = /tmp/odbc.log
> ForceTrace = Yes
> [mssql_tds]
> Description = MSSQL driver
> Driver64 = /usr/lib64/libtdsodbc.so
> Setup64 = /usr/lib64/libtdsS.so
> UsageCount = 2
> CPTimeout =
> CPReuse =
>
> When I reboot, here is my tsql -C:
>
> Version: freetds v0.91
> freetds.conf directory: /etc
> MS db-lib source compatibility: yes
> Sybase binary compatibility: yes
> Thread safety: yes
> iconv library: yes
> TDS version: 4.2
> iODBC: no
> unixodbc: yes
> SSPI "trusted" logins: no
> Kerberos: yes
>
> ---
>
> I don't know how it is happening, but the TDS version is not being updated,
> and I cannot even attempt to debug anything because there is no freetds.log
> file in my /tmp/ directory (or anywhere else - actually I did find one
> subsequently after using TSQL command line) when I run the php code (here's
> that code if relevant):
>
> <?php
> try {
> $hostname = "101.215.76.250";
> $port = 2638;
> $dbname = "dbname";
> $username = "username";
> $pw = "password";
> $dbh = new PDO
> ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
> } catch (PDOException $e) {
> echo "Failed to get DB handle: " . $e->getMessage() . "\n";
> exit;
> }
> $stmt = $dbh->prepare("select name from master..sysdatabases where name =
> db_name()");
> $stmt->execute();
> while ($row = $stmt->fetch()) {
> print_r($row);
> }
> unset($dbh); unset($stmt);
> ?>
>
> ---
>
> If I use "$ tsql -S 101.215.76.250 -U username -P password" it starts
> counting and does not stop. A log file is created with this command:
>
> 2:44:23.453378 9855 (log.c:196):Starting log file for FreeTDS 0.91
> on 2015-05-16 12:44:23 with debug flags 0xffff.
> 12:44:23.454088 9855 (iconv.c:330):tds_iconv_open(0x237ccf0, UTF-8)
> 12:44:23.454422 9855 (iconv.c:187):local name for ISO-8859-1 is ISO-8859-1
> 12:44:23.454439 9855 (iconv.c:187):local name for UTF-8 is UTF-8
> 12:44:23.454451 9855 (iconv.c:187):local name for UCS-2LE is UCS-2LE
> 12:44:23.454462 9855 (iconv.c:187):local name for UCS-2BE is UCS-2BE
> 12:44:23.454473 9855 (iconv.c:349):setting up conversions for client
> charset "UTF-8"
> 12:44:23.454484 9855 (iconv.c:351):preparing iconv for "UTF-8" <->
> "UCS-2LE" conversion
> 12:44:23.454515 9855 (iconv.c:391):preparing iconv for "ISO-8859-1" <->
> "UCS-2LE" conversion
> 12:44:23.454542 9855 (iconv.c:394):tds_iconv_open: done
> 12:44:23.454567 9855 (net.c:205):Connecting to 101.215.76.250 port 1433
> (TDS version 7.1)
> 12:44:23.455570 9855 (net.c:270):tds_open_socket: connect(2) returned
> "Operation now in progress"
>
> My interpretation of this is it never succeeds? I have no idea why it is
> using port 1433 and TDS version 7.1 when the port is declared as 2638 in
> the config and TDS is reading as 4.2 with the TSQL -C command. Also, no
> odbc.log file was ever created.
>
> I guess the first step would be to connect correctly with the tsql command
> line and then adapt the PHP to be compatible with how that connection is
> set up.
>
> Any help or indications of where a good place to start getting this
> connection working would be incredibly helpful - I've spent weeks on trying
> to get it going, it's been a bit like entering a dark forest with barely
> any signs.
>
> Kind Regards,
> Ben David
>
Did you read the user guide? See http://www.freetds.org/userguide/.
For Sybase use version 5.0.
Version 8.0 is obsolete and for Microsoft version.
Also servername is mssql_tds (from freetds.conf), not 101.215.76.250
(-S tsql argument, for ip/hostname use -H and -p for port). tsql -C
print the default version used in configure, so it always print (in
your case) 4.2.
For ODBC driver name we suggest FreeTDS, also using same name for
driver and connection can be confusing.
Frediano
-
[freetds] Version Not Updating; Connection Not Connecting,
Ben David, 05/16/2015
-
Re: [freetds] Version Not Updating; Connection Not Connecting,
Frediano Ziglio, 05/16/2015
-
Re: [freetds] Version Not Updating; Connection Not Connecting,
Ben David, 05/16/2015
- Re: [freetds] Version Not Updating; Connection Not Connecting, Sergio NNX, 05/16/2015
-
Re: [freetds] Version Not Updating; Connection Not Connecting,
Ben David, 05/16/2015
-
Re: [freetds] Version Not Updating; Connection Not Connecting,
Frediano Ziglio, 05/16/2015
Archive powered by MHonArc 2.6.24.