Реших да използвам FreeTDS драйвер и unixODBC, за да управлявам PDO връзката между моето LAMP-базирано приложение с отдалечена MsSQL база данни. за съжаление изглежда, че драйверът не чете файла freetds.conf, нито променливите на околната среда, зададени директно чрез CLI на сървъра или посочени в php файла чрез функцията putenv().
сега малко данни:
- докато пингвам сървъра - не се губят пакети.
- тъй като telnet сървъра на 1433 порт - връзката е установена
като използвам командата
TDSVER=7.0 tsql -H >IP< -p 1433 -U username
Получавам подкана да въведа парола и връзката е установена.
без TDSVER да предхожда командата - връзката е неуспешна с такова съобщение:
Error 20017 (severity 9): Unexpected EOF from the server OS error 115, "Operation now in progress" Error 20002 (severity 9): Adaptive Server connection failed There was a problem connecting to the server
командите tsql -C отразяват такъв изход:
Compile-time settings (established with the "configure" script) Version: freetds v0.91 freetds.conf directory: /usr/local/etc MS db-lib source compatibility: yes Sybase binary compatibility: no Thread safety: yes iconv library: yes TDS version: 5.0 iODBC: no unixodbc: yes SSPI "trusted" logins: no Kerberos: no
freetds.conf в даденото по-горе местоположение има този запис:
[MSSQL] host = >IP< port = 1433 tds version = 7.0
ISQL също се проваля:
isql -v MSSQL [S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source [01000][unixODBC][FreeTDS][SQL Server]Adaptive Server connection failed [ISQL]ERROR: Could not SQLConnect
моят odbc.ini:
[MSSQL] Description = MS SQL Server Driver = FreeTDS TDS_Version = 7.0 Server = >IP< UID = username PWD = password ReadOnly = No Port = 1433
Предполагам, че решението е много просто, но съм твърде глупав, за да го намеря...