MsSQL и Perl
Несмотря на успешно пройденый этап подключения Perl к Microsoft SQL, пару дней упирался в неприятную стену: из консоли перловый скрипт легко подключается к MS SQL, а из-под IIS выдает такую ошибку:
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (SQL-08001)
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (SQL-01000)(DBD: db_login/SQLConnect err=-1)
Потратив некоторое время на безрезультатные пляски с бубном, решил попробовать то же самое, но с Linux-машины - и на двух разных ODBC-драйверах получил connection refused.
Десять раз проверено в настройках SQL-сервера, что TCP/IP включен.
после того, как сначала nmap, а затем и netstat в один голос сказали мне, что порт 1433 закрыт, и ничего там нет, полчаса было потрачено на осознание данной ситуации.
Ситуация начала проясняться после
http://www.sql.ru/faq/faq_topic.aspx?fid=564
и
http://www.sql.ru/articles/mssql/2005/013001TtroubleshootingConnectivitySQLServer2000.shtml
(и вообще, на форуме того сайта на редкость толковые люди).
смотрим в логи сервера, видим
SQL server listening on Shared Memory, Named Pipes.
то есть TCP отсутствует.
Решение: поставить последний SP для Microsoft SQL.
ps: Почему не поставлен раньше? потоу что “работает - не трогай”. потому что он смотрит исключительно в локалку, и чужие здесь не ходят. потому что страшновато - запорется главная база, и восстанавливай сначала сам SQL, а потом поднимай все из бекапов…