Я решил использовать драйвер FreeTDS и unixODBC для управления соединением PDO между моим LAMP-приложением с удаленной базой данных MsSQL. к сожалению, кажется, что драйвер не читает файл freetds.conf, ни переменные среды, установленные либо напрямую через CLI сервера, либо заданные в php файле функцией putenv().
теперь некоторые данные:
- когда я ping сервер - никакие пакеты не теряются.
- поскольку я 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
-
my odbc.ini:
[MSSQL] Description = MS SQL Server Driver = FreeTDS TDS_Version = 7.0 Server = >IP< UID = username PWD = password ReadOnly = No Port = 1433
Я полагаю, что решение действительно просто, но я просто слишком глуп, чтобы найти его...