Я решил использовать драйвер FreeTDS и unixODBC для управления соединением PDO между моим приложением на основе LAMP и удаленной базой данных MsSQL. к сожалению, похоже, что драйвер не читает файл freetds.conf, а также переменные среды, установленные либо непосредственно через интерфейс командной строки сервера, либо указанные в файле php с помощью функции putenv().
теперь немного данных:
- как пингую сервер - пакеты не теряются.
- как телнет сервер на 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
Я полагаю, что решение действительно простое, но я слишком глуп, чтобы найти его...