У меня проблемы с подключением Ruby к Microsoft SQL Server. Я использую Mac OS X, но целевой средой является Ubuntu Linux.
Вот что я пробовал:
- Установите unixODBC.
- Install FreeTDS
- used the options
--with-unixodbc=/usr/local/etc
--with-tdsver=8.0
- used the options
Затем у меня были эти файлы в /usr/local/etc
:
odbc.ini
odbcinst.ini
freetds.conf
Я добавил ссылку на драйвер FreeTDS в файле odbcinst.ini
в файл драйвера ODBC следующим образом:
;
; odbcinst.ini
;
;
[FreeTDS]
Driver = /usr/local/lib/libtdsodbc.so
Затем я настроил сервер в файле freetds.conf
следующим образом:
# Aries database server (SQL Server 2008)
[aries-db1]
host = xx.xx.xx.xx
port = 1433
tds version = 8.0
И, наконец, я добавил DSN ODBC в файл odbc.ini
следующим образом:
[aries-db1]
Driver = FreeTDS
Description = ODBC Connection via FreeTDS
Trace = 1
Servername = aries-db1
Database = MY_DB
UID = user1
PWD = pass1
Я могу убедиться, что мой сервер подключен к сети и порт открыт (через проверку порта telnet и yougetsignal.com).
В качестве теста я сделал это:
tsql -S aries-db1 -U user1 -P pass1
И вроде нормально подключился. Передача недопустимых значений привела к ожидаемым ошибкам.
Итак, наконец, на мой вопрос:
Как мне расширить это на Ruby? Ничто из того, что я пробовал до сих пор, не сработало. Я пробовал Sequel следующим образом:
require 'sequel'
Sequel.connect('aries-db1')['select * from foo'].all
И получаю такую ошибку:
Sequel::DatabaseConnectionError: ODBC::Error: S1000 (0) [unixODBC][FreeTDS][SQL Server]Unable to connect to data source
Что говорит мне, что он правильно находит конфигурацию моего драйвера, но по какой-то причине не может подключиться.
Я также пробовал DBI следующим образом:
DBI.connect('DBI:ODBC:aries-db1')
И я получаю аналогичную ошибку.
Какие-либо предложения? Я чувствую, что я очень близок, но не уверен, что делать дальше, чтобы устранить эту проблему.
I can verify that my server is online and the port is open (via telnet & yougetsignal.com port check).
Извините, я не могу ответить на ваш вопрос. Однако вы должны знать, что доступ SQL Server к Интернету может привести к проблемам с безопасностью. Различные боты сканируют SQL Server и пытаются подключиться/атаковать его. - person   schedule 13.01.2011