Looking up hostname from IP address and connection problem MS SQL Server from php

Marc-André Legrand <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>


Hello,
 
I installed FreeTDS on CentOS 6.6 and I have a connection problem between 
PHP Server and MS SQL Server 2014. I have the following message :
Warning: odbc_connect(): SQL error: [unixODBC][FreeTDS][SQL Server]Unable to connect 
to data source, SQL state S1000 in SQLConnect 
After FreeTDS installation I made a test by :
# tsql -C 
Compile-time settings (established with the "configure" script)
                            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
 

It is a FreeTDS RPM version that I have got .
Here is Linux Server feature :
CentOS 6.6 
Php 5.3.3
Apache 2.2.15
unixodbc 2.2.14
freetds 0.91
My Windows Server :
Windows Server 2012 R2
MS SQL Server 2014 Standard Edition
Here is the command line that I executed  :
# osql -S MyMSSQLServerName -U user -P password

My result of this command :
checking shared odbc libraries linked to isql for default directories...
strings: '': No such file
 trying /tmp/sqlH ... no
 trying /tmp/sqlL ... no
 trying /etc ... OK
checking odbc.ini files
 cannot read "/root/.odbc.ini"
 reading /etc/odbc.ini
[MyMSSQLServerName] found in /etc/odbc.ini
found this section:
 [MyMSSQLServerName]
 Driver = /usr/lib64/libtdsodbc.so.0
 Description = MSSQL Server
 Trace = No
 Server = 192.168.1.32
 Database = mydatabase
 Port = 1433
 TDS_Version = 7.2
 
looking for driver for DSN [MyMSSQLServerName] in /etc/odbc.ini
  found driver line: " Driver = /usr/lib64/libtdsodbc.so.0"
  driver "/usr/lib64/libtdsodbc.so.0" found for [MyMSSQLServerName] in odbc.ini
found driver named "/usr/lib64/libtdsodbc.so.0"
/usr/lib64/libtdsodbc.so.0 is an executable file
"Server" found, not using freetds.conf
Server is "192.168.1.32"
looking up hostname for ip address 192.168.1.32
osql: warning: no DNS hostname found for "192.168.1.32"
Usage: host [-aCdlriTwv] [-c class] [-N ndots] [-t type] [-W time]
            [-R number] [-m flag] hostname [server]
       -a is equivalent to -v -t ANY
       -c specifies query class for non-IN data
       -C compares SOA records on authoritative nameservers
       -d is equivalent to -v
       -l lists all hosts in a domain, using AXFR
       -i IP6.INT reverse lookups
       -N changes the number of dots allowed before root lookup is done
       -r disables recursive processing
       -R specifies number of retries for UDP packets
       -s a SERVFAIL response should stop query
       -t specifies the query type
       -T enables TCP/IP mode
       -v enables verbose output
       -w specifies to wait forever for a reply
       -W specifies how long to wait for a reply
       -4 use IPv4 query transport only
       -6 use IPv6 query transport only
       -m set memory debugging flag (trace|record|usage)
osql: no IP address found for ""
 
Here is my ODBC configuration 
====================================================================
/etc/odbc.ini for osql
[ODBC Data Sources]
MyMSSQLServerName=MSSQL Server
[MyMSSQLServerName]
Driver = /usr/lib64/libtdsodbc.so.0
Description = MSSQL Server
Trace = No
Server = 192.168.1.32
Database = mydatabase
Port = 1433
TDS_Version = 7.2
[Default]
Driver=/usr/lib64/libtdsodbc.so.0
================================================================
/etc/odbcinst.ini for php
# Example driver definitions
# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[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

# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[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]
Driver = /usr/lib64/libtdsodbc.so.0
Setup = /usr/lib64/libtdsS.so
Description = MSSQL Server
Trace = No
Server = 192.168.1.32
Database = mydatabase
Port = 1433
TDS_Version = 7.2
=====================================================================
/etc/freetds.conf
#   $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $
#
# This file is installed by FreeTDS if no file by the same 
# name is found in the installation directory.  
#
# For information about the layout of this file and its settings, 
# see the freetds.conf manpage "man freetds.conf".  
# Global settings are overridden by those in a database
# server specific section
[global]
        # TDS protocol version
; tds version = 4.2
 # Whether to write a TDSDUMP file for diagnostic purposes
 # (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
 # Command and connection timeouts
; timeout = 10
; connect timeout = 10
 
 # If you get out-of-memory errors, it may mean that your client
 # is trying to allocate a huge buffer for a TEXT field.  
 # Try setting 'text size' to a more reasonable limit 
 text size = 64512
# A typical Sybase server
[egServer50]
 host = symachine.domain.com
 port = 5000
 tds version = 5.0
# A typical Microsoft server
[egServer70]
 host = ntmachine.domain.com
 port = 1433
 tds version = 7.0 ## I added theses lines below  
# MSSQL ServerName
[MyMSSQLServerName]
    host = 192.168.1.32
    port = 1433
    tds version = 7.0
    # client charset = UTF-8
====================================================================================
========

My connection string in php file : 
Driver=FreeTDS;Server=192.168.1.32;Database=mydatabase;

Another information about CentOS, I disabled SELinux .
The osql searches DNS hostname from the IP address that I given but it didn't find.
 
I don't know if the connection problem from php to SQL Server is due by the lookup DNS problem from the IP address.
 
I would like to know what should I do to resolve this connection problem ?
 
Thank you for your response.
 
Best regards.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.